Review2XML
    XML

    Google Product Ratings XML Explained: Structure, Required Fields & Common Mistakes

    By Felipe Pinto•December 1, 2025•Updated October 7, 2026•
    6 min read

    If you’re trying to show star ratings on Google Shopping, you’ve probably realised something frustrating:

    Google does not accept CSV, JSON, or Shopify review exports. It only accepts XML, and that XML must follow Google’s exact Product Ratings schema.

    The problem? Google’s documentation can feel complex, overly technical, and difficult to translate into something practical.

    This guide breaks the entire format down in simple, founder-friendly terms:

    •	What fields Google expects
    •	Why the structure looks the way it does
    •	The most common errors
    •	A complete XML example you can copy
    •	How to avoid the coding headache entirely
    

    Whether you’re converting your own CSV or validating an XML feed, this guide will save you time (and a lot of trial-and-error).

    What Is Google Product Ratings XML?

    Google Product Ratings XML is a structured file that contains all your product reviews in a format Google’s systems can read.

    Google uses this XML file to display:

    •	⭐ Shopping ads review stars
    •	⭐ Free product listing stars
    •	⭐ Product Rating carousels
    •	⭐ Performance Max review extensions
    

    Without a valid XML file, Google cannot show your review stars, even if your store has hundreds of reviews.

    Why Google Requires XML Instead of CSV

    CSV files are simple tables. They work great for spreadsheets, but they don’t support:

    •	Nested data
    •	Structured relationships
    •	Required child elements
    •	Multiple product identifiers
    •	Correct encoding
    •	Strict formatting rules
    

    XML, on the other hand, is:

    •	Hierarchical
    •	Predictable
    •	Validatable
    •	Machine-readable
    •	Standardized
    

    Google needs that structure to match every review to a product, timestamp, and rating with zero ambiguity.

    What Google’s XML Structure Looks Like (Simple Overview)

    Every Product Ratings XML file follows this container → parent → child format:

    <reviews>
      <review>
        <review_id>...</review_id>
        <reviewer_name>...</reviewer_name>
        <review_timestamp>...</review_timestamp>
        <content>...</content>
        <rating>...</rating>
        <product_ids>
          <sku>...</sku>
        </product_ids>
      </review>
    </reviews>
    

    Everything must be placed in the correct order and inside the correct tags.

    Even small formatting mistakes can break the file.

    Required Fields in Google’s Product Ratings XML (Explained Simply)

    Below are the mandatory fields Google requires for every review.

    <review_id>

    A unique identifier. If two reviews share the same ID, the XML will fail.

    <reviewer_name>

    The customer’s name (or the anonymized name your review app provides).

    <review_timestamp>

    The date the review was created, in ISO 8601 format: YYYY-MM-DDThh:mm:ss

    <content>

    The review text itself.

    <rating>

    A number between 1 and 5.

    <product_ids> block

    This section must include one valid identifier:

    •	<sku>
    •	<gtin>
    •	<mpn>
    

    Google only needs one, but it must match your product feed exactly.

    Optional (But Useful) XML Fields

    Google also supports optional fields like:

    •	<reviewer_id>
    •	<collection_method> (e.g., “post_purchase”, “website”)
    •	<reviewer_country>
    •	<reviewer_state>
    

    Optional fields do not improve ranking by themselves, but they help Google better classify your data.

    A Complete, Valid XML Example You Can Copy

    Here is a Google-ready XML template with realistic formatting:

    <reviews>
      <review>
        <review_id>R-1001</review_id>
        <reviewer_name>Sarah</reviewer_name>
        <review_timestamp>2025-11-10T13:24:00</review_timestamp>
        <content>Loved the quality and fast shipping!</content>
        <rating>5</rating>
        <product_ids>
          <sku>HOLO-STAR-01</sku>
        </product_ids>
      </review>
    
      <review>
        <review_id>R-1002</review_id>
        <reviewer_name>Mike</reviewer_name>
        <review_timestamp>2025-11-13T09:17:00</review_timestamp>
        <content>Great value for the price.</content>
        <rating>4</rating>
        <product_ids>
          <gtin>0123456789123</gtin>
        </product_ids>
      </review>
    </reviews>
    

    You can freely reuse this structure.

    The Most Confusing Parts of Google’s XML Specification (Explained Simply)

    1. Review IDs must be unique

    Even if two reviews are identical, they must have different IDs.

    2. Timestamps must use “T” between date and time

    For example:

    ❌ 2025-11-10 13:24 ✔ 2025-11-10T13:24:00

    3. Product identifiers must match your feed EXACTLY

    If your feed uses: HOLO-STAR-01 …but your XML uses: holo-star-01

    Google will reject the review.

    4. No emojis unless encoded

    XML breaks easily:

    ❌ “Amazing product! 🤩💖” ✔ “Amazing product!” (or encoded characters)

    5. Fields must be in the correct order

    Google is strict, reordering elements may cause a rejection.

    Common XML Mistakes Merchants Make

    These are the top reasons Google rejects review feeds:

    1.	Missing <rating> fields
    2.	Invalid timestamps
    3.	Non-unique review IDs
    4.	Incorrect nesting inside <product_ids>
    5.	Incorrect encoding (emoji, special characters)
    6.	Missing product identifiers
    7.	Random spaces or line breaks inside tags
    8.	Invalid HTML pasted into <content>
    9.	Duplicate <review> blocks
    10.	Using CSV or JSON instead of XML
    

    Most of these happen when trying to build XML manually or by hand-editing files in a text editor.

    Validating Your XML Before Uploading to Google

    Before uploading to Merchant Center, check:

    •	✔ All <review_id> values are unique
    •	✔ Ratings are integers between 1 and 5
    •	✔ Timestamps are ISO format
    •	✔ Every review includes a valid SKU/GTIN/MPN
    •	✔ No emojis or unsupported characters
    •	✔ XML is properly wrapped inside <reviews>
    

    If even one element is invalid, Google may reject the entire file.

    Should You Manually Build XML?

    You can, technically… But for most founders, it’s slow, repetitive, and high-risk.

    Google expects perfection, and XML is famously unforgiving.

    Most merchants prefer a conversion tool because:

    •	No coding required
    •	No formatting errors
    •	No broken structure
    •	Faster approvals in Google Merchant Center
    •	Unlimited re-uploads
    

    If you already have your reviews in CSV format, using a conversion tool eliminates 99% of XML headaches.

    Final Thoughts

    Understanding Google’s Product Ratings XML format is the key to displaying review stars across Google Shopping, free listings, and ads.

    Once you know which fields Google expects, and how the XML structure works, generating a compliant feed becomes much easier.

    If you want to avoid the manual work and formatting issues entirely, Review2XML builds a fully Google-compliant feed from your reviews (auto-sync, a Google Sheet, or a CSV) and, through Google's official Merchant API, connects it to Merchant Center in one click. Your first 50 reviews are free.

    Your reviews are valuable. XML is just the bridge that helps Google show them to the world.

    Frequently Asked Questions

    What is the root element of a Google Product Ratings XML feed?

    The root element is <feed> with the XML namespace xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning". Inside it sits a <publisher> block and a <reviews> block containing individual <review> elements.

    What are the required fields inside each review element?

    Required fields per review: <review-id> (unique identifier), <reviewer> with <name>, <review-timestamp> (ISO 8601 format), <title> and <content> (review text), <review-url>, <ratings> with <overall>, and <products> with at least one product identifier.

    What product identifiers does Google accept?

    Google accepts GTINs (barcodes), MPNs (manufacturer part numbers), and SKUs. At least one must be present per review. GTIN gives the most reliable matching to your product feed.

    What encoding should the XML file use?

    UTF-8. Declare it in the XML header: <?xml version="1.0" encoding="UTF-8"?>. Special characters in review text must be properly escaped or wrapped in CDATA sections.

    Can I validate my XML before uploading to Merchant Center?

    Yes. Use Google's Feed Rules or the Merchant Center diagnostics tab after upload. You can also validate the XML structure with any standard XML validator before uploading.

    Found this helpful? See more of our guides on Google.

    Add as preferred source on Google