IMPORTFEED in Google Sheets: RSS and Atom Feed Queries
Use IMPORTFEED in Google Sheets to retrieve RSS or Atom titles, summaries and feed metadata, control headers and item counts, and verify a dated public-feed example.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer: =IMPORTFEED("https://www.w3.org/blog/feed/","items title",TRUE,3) requests the three most recent item titles with a header row. The first title in the inspected feed was Introducing group activity pages; future titles will change.
Syntax and defaults
=IMPORTFEED(url, [query], [headers], [num_items])
The Google IMPORTFEED reference specifies:
url: required RSS or Atom feed address, quoted or supplied by a cell.query: defaults to"items".headers: defaults to FALSE; TRUE adds a column-header row.num_items: optional limit for item queries, beginning with the most recent entries. Omission requests all items currently published in the feed.
A feed’s current contents are not necessarily its complete historical archive. Increasing num_items cannot recover old posts that the publisher no longer includes in the feed.
Choose feed metadata or item data
| Query | Requested information |
|---|---|
| feed | One row of feed information |
| feed title, feed description, feed author, feed url | A particular feed attribute |
| items | Full item table |
| items title, items summary, items url, items created | A particular attribute of each item |
The space within a query such as "items title" is part of the query string. Google’s summary description excludes hyperlinks and images; it is not a request to reproduce a fully rendered article. The created field represents the post date associated with an item.
Keep num_items for item queries. This guide does not invent a useful meaning for an item count attached to a feed-level metadata query.
Worked example: inspect W3C’s public blog feed
The W3C blog exposes its RSS feed publicly. Put the feed URL in Setup!A1. On an empty tab named Feed, enter in A1:
=IMPORTFEED(Setup!A1,"items title",TRUE,3)
The expected structure is one header row followed by three titles in A2:A4, provided at least three items remain available. The retrieved October 17, 2026 snapshot contained 25 items. Its newest item was dated October 14, 2026 and titled Introducing group activity pages.
The next two item dates were October 12 and October 9. These checks came from independently parsing the feed XML. They are dated source expectations, not results from running IMPORTFEED in Sheets or a guarantee of future ordering after new posts appear.
To request the feed’s name in a separate clear cell:
=IMPORTFEED(Setup!A1,"feed title",FALSE)
Expected value for the inspected source: W3C - Blog. That is the channel title, not the title of its newest post.
Independent checks and headers
After the three expected titles occupy Feed!A2:A4, count text entries on an analysis tab:
=COUNTIF(Feed!A2:A4,"*")
Expected result for the snapshot: 3. Including A1 in the range would also count the text header, producing 4 if the result contains that header as requested.
With headers set to FALSE, the same three titles begin in A1 rather than A2. Keep downstream ranges consistent with the chosen header setting rather than assuming the first row is always an item.
This count checks the selected result’s shape. It does not prove that a feed has only three entries or that all historical articles were imported.
Advanced application: a focused reading list
Use the same feed with an explicit small limit:
=IMPORTFEED(Setup!A1,"items",TRUE,3)
Expected result: a header-bearing table for the three most recent available items, with the item fields rather than only titles. Inspect the actual returned headers before building references to particular columns; the individual reference does not specify every header label and column position.
Prefer one full-item import when titles, URLs and dates must stay together. Separate live calls can refresh at different times, so joining two independently fetched lists solely by row number can associate the wrong title and URL after a new post arrives.
For the original three-title snapshot, =COUNTIF(Feed!A2:A4,"*EPUB*") has expected result 1. This is a literal keyword filter, not a claim that the other posts are unrelated to publishing.
Loading, access and limitations
Google’s import guidance includes IMPORTFEED in external-data authorization and traffic limits. An editor may need to approve external access, and excessive calls across the creator’s documents can cause loading delays. Review the source and sharing context before granting access.
A normal blog home page is not interchangeable with its RSS or Atom endpoint. If the result fails, inspect whether the URL actually returns a feed and whether the requested field exists in that feed.
The shared guidance gives an hourly-open-document refresh rule specifically for IMPORTDATA, IMPORTHTML and IMPORTXML. It does not establish the same precise schedule for IMPORTFEED, so no fixed refresh interval is promised here. Avoid volatile URL dependencies and repeated formula churn.
Exact native handling of malformed feeds, missing optional fields, duplicate entries, fractional counts and every error token was not established. Keep source problems visible rather than silently turning them into an empty reading list.
Availability and verification
IMPORTFEED is documented for current rolling Google Sheets. Original introduction date, first or last numbered releases and cross-product equivalence were not established.
NOT_TESTED_IN_GOOGLE_SHEETS. Individual Google documentation and the public feed were inspected on October 17, 2026. Feed metadata, ordering, entry counts and keyword counts were independently parsed and checked. No native import, permission grant or screenshot is claimed.