<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: SEOCode</title>
    <description>The latest articles on DEV Community by SEOCode (@seocode_writer).</description>
    <link>https://dev.to/seocode_writer</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3976273%2F0212d42e-1cba-404a-a100-38f553a26324.png</url>
      <title>DEV Community: SEOCode</title>
      <link>https://dev.to/seocode_writer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/seocode_writer"/>
    <language>en</language>
    <item>
      <title>SEOCode Rules Update v1.4.6</title>
      <dc:creator>SEOCode</dc:creator>
      <pubDate>Sat, 05 Sep 2026 21:21:23 +0000</pubDate>
      <link>https://dev.to/seocode_writer/seocode-rules-update-v146-2i8o</link>
      <guid>https://dev.to/seocode_writer/seocode-rules-update-v146-2i8o</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SEOCode&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Rule&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Engine&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;v1.4.6:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Agentic&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Commerce&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Protocols&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;IndexNow"&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2026-09-05&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;1.4.6&lt;/span&gt;
&lt;span class="na"&gt;slug&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;rule-engine-v1-4-6-agentic-commerce-indexnow&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Version&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;1.4.6&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;adds&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;two&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;new&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;informational&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;rules:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;one&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;flagging&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;missing&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;agentic&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;commerce&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;protocol&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;(ACP/UCP)&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;support&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;on&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;ecommerce&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;sites,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;one&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;flagging&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;missing&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;IndexNow&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;implementation&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;for&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;faster&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;search&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;engine&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;indexing."&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;rule-engine&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;changelog&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;technical-seo&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;ecommerce&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;indexnow&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;agentic-commerce&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  SEOCode Rule Engine v1.4.6: Agentic Commerce Protocols and IndexNow
&lt;/h1&gt;

&lt;p&gt;Version 1.4.6 adds two new informational rules that address how search engines and AI agents discover and index your content — one targeting ecommerce sites preparing for AI-driven shopping, and one targeting any site that wants faster indexing after publishing or updating content.&lt;/p&gt;




&lt;h2&gt;
  
  
  New Rules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;acp-ucp-agentic-commerce-protocols&lt;/code&gt; — Agentic commerce protocols (ACP/UCP) not implemented
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Category:&lt;/strong&gt; Technical&lt;/p&gt;

&lt;h4&gt;
  
  
  What it checks
&lt;/h4&gt;

&lt;p&gt;This rule flags ecommerce sites that have not implemented either the Agent Commerce Protocol (ACP) or the Universal Commerce Protocol (UCP).&lt;/p&gt;

&lt;h4&gt;
  
  
  What ACP and UCP are
&lt;/h4&gt;

&lt;p&gt;ACP and UCP are emerging protocols designed to give AI shopping agents a structured, programmatic interface to ecommerce sites. Instead of parsing HTML or simulating a browser session, an AI agent using these protocols can directly query a site for product data, pricing, availability, and checkout flows through defined endpoints.&lt;/p&gt;

&lt;p&gt;Google has referenced UCP in its AI optimization guidance as an emerging standard for Search agents. These protocols extend the broader concept of "agent-friendly" websites — sites that are structured so that AI agents can reliably extract and act on information — into the specific domain of commerce transactions.&lt;/p&gt;

&lt;h4&gt;
  
  
  Why it matters for SEO
&lt;/h4&gt;

&lt;p&gt;AI-driven shopping experiences are growing. Crawl data from Botify shows that AI bots are meaningfully increasing their crawl volume across the web, and ecommerce sites that structure their product data for agent-driven discovery are better positioned as these experiences mature.&lt;/p&gt;

&lt;p&gt;Neither ACP nor UCP is a formal ranking signal today. This rule is flagged at &lt;strong&gt;info&lt;/strong&gt; severity for that reason — it is not a regression that will hurt you now, but it is a gap worth tracking as the ecosystem develops. Sites that adopt early will have a structural advantage when AI agent-driven shopping becomes a mainstream discovery channel.&lt;/p&gt;

&lt;h4&gt;
  
  
  What you need to do
&lt;/h4&gt;

&lt;p&gt;This rule will not block a PR or trigger a warning. It surfaces as an informational flag on ecommerce repositories so that the relevant teams are aware of the protocols.&lt;/p&gt;

&lt;p&gt;If you want to act on it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Review the UCP specification and Google's AI optimization guidance to understand the endpoint and data structure requirements.&lt;/li&gt;
&lt;li&gt;Review the ACP specification for agent transaction interfaces.&lt;/li&gt;
&lt;li&gt;Assess whether your product data (pricing, availability, checkout) can be exposed through these interfaces without creating security or business logic risks.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There is no urgency here. The rule exists to make sure the conversation happens before these protocols become table stakes.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;indexnow-protocol&lt;/code&gt; — IndexNow protocol not implemented for faster indexing
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Category:&lt;/strong&gt; Technical&lt;/p&gt;

&lt;h4&gt;
  
  
  What it checks
&lt;/h4&gt;

&lt;p&gt;This rule flags sites that have not implemented the IndexNow protocol.&lt;/p&gt;

&lt;h4&gt;
  
  
  What IndexNow is
&lt;/h4&gt;

&lt;p&gt;IndexNow is an open protocol that lets a website push notifications to participating search engines — currently Bing, Yandex, and others — whenever a URL is published, updated, or deleted. Google is evaluating adoption.&lt;/p&gt;

&lt;p&gt;The default model for search engine indexing is pull-based: crawlers visit your site on their own schedule and discover changes when they happen to crawl the relevant URLs. IndexNow flips this to a push-based model. When you publish or update a page, you send a lightweight HTTP request to the IndexNow endpoint, and participating search engines are notified immediately.&lt;/p&gt;

&lt;h4&gt;
  
  
  Why it matters for SEO
&lt;/h4&gt;

&lt;p&gt;Crawl budget is finite and unevenly distributed. Large, high-authority sites get crawled frequently. Mid-sized sites often wait days or weeks for updated content to be re-crawled and re-indexed. For content types where freshness matters — news articles, ecommerce product pages with price or availability changes, job listings, event pages — that delay has a direct impact on search visibility.&lt;/p&gt;

&lt;p&gt;IndexNow does not guarantee faster indexing on Google (which has not yet adopted the protocol), but it meaningfully accelerates indexing on Bing and other participating engines. For sites where Bing drives material traffic, or where content freshness is a competitive factor, the implementation cost is low relative to the benefit.&lt;/p&gt;

&lt;p&gt;Bing Webmaster Tools provides native IndexNow integration, which reduces the implementation overhead further.&lt;/p&gt;

&lt;h4&gt;
  
  
  What you need to do
&lt;/h4&gt;

&lt;p&gt;This rule is flagged at &lt;strong&gt;info&lt;/strong&gt; severity. It will not block a PR.&lt;/p&gt;

&lt;p&gt;If you want to implement IndexNow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Generate an IndexNow API key and host the key file at the root of your domain (e.g., &lt;code&gt;https://yourdomain.com/{key}.txt&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Add a call to the IndexNow endpoint (&lt;code&gt;https://api.indexnow.org/indexnow&lt;/code&gt;) whenever a URL is published, updated, or deleted. This is typically a one-line addition to your CMS publish hook or deployment pipeline.&lt;/li&gt;
&lt;li&gt;Optionally, configure Bing Webmaster Tools for native integration.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The full specification and key generation tool are available at &lt;a href="https://www.indexnow.org" rel="noopener noreferrer"&gt;indexnow.org&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sources &amp;amp; References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.botify.com/blog" rel="noopener noreferrer"&gt;Botify Blog&lt;/a&gt; — "ACP vs. UCP: The New Protocols Shaping Agentic Commerce"; "UCP: What It Is, Why It Matters, &amp;amp; How to Get Started for E-commerce"; "Why Mid-Sized Brands Should Use IndexNow to Accelerate Organic Search Growth" (scraped 2026-09-05)&lt;/li&gt;
&lt;/ol&gt;







&lt;h2&gt;
  
  
  Catch SEO issues before they ship
&lt;/h2&gt;

&lt;p&gt;SEOCode reviews every pull request against the latest Google SEO rules — automatically. No manual audits. No surprises after deploy.&lt;/p&gt;

&lt;p&gt;It checks for missing metadata, broken structured data, hreflang errors, robots.txt issues, and more — right inside your existing GitHub workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://seocode.io" rel="noopener noreferrer"&gt;Try SEOCode →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>release</category>
      <category>rulesupdate</category>
      <category>newrules</category>
    </item>
    <item>
      <title>SEOCode Rules Update v1.4.5</title>
      <dc:creator>SEOCode</dc:creator>
      <pubDate>Fri, 04 Sep 2026 17:17:59 +0000</pubDate>
      <link>https://dev.to/seocode_writer/seocode-rules-update-v145-3dkn</link>
      <guid>https://dev.to/seocode_writer/seocode-rules-update-v145-3dkn</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SEOCode&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Rule&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Engine&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;v1.4.5:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Vacation&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Rental&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Schema,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Movie&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Schema,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;European&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Licensing&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Info"&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2026-09-04&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;1.4.5&lt;/span&gt;
&lt;span class="na"&gt;slug&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;rule-engine-v1-4-5&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Version&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;1.4.5&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;adds&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;three&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;new&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;informational&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;rules&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;covering&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Vacation&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Rental&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;structured&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;data,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Movie&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;structured&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;data,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;the&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Google&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;European&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Search&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Dataset&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Licensing&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Program."&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;changelog&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;structured-data&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;schema&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;technical-seo&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;rich-results&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Rule Engine v1.4.5: Vacation Rental Schema, Movie Schema, and European Licensing Info
&lt;/h1&gt;

&lt;p&gt;Version 1.4.5 adds three new informational rules that surface structured data opportunities and a publisher licensing program that SEOCode previously had no coverage for.&lt;/p&gt;

&lt;p&gt;No rules were updated or deprecated in this release.&lt;/p&gt;




&lt;h2&gt;
  
  
  New Rules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;vacation-rental-schema&lt;/code&gt; — Missing Vacation Rental structured data
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info | &lt;strong&gt;Category:&lt;/strong&gt; Schema&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it checks&lt;/strong&gt;&lt;br&gt;
This rule flags pages that list vacation rental properties but do not include &lt;code&gt;VacationRental&lt;/code&gt; structured data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters&lt;/strong&gt;&lt;br&gt;
Google Search supports &lt;code&gt;VacationRental&lt;/code&gt; structured data and uses it to generate rich results for vacation property listings. Implementing it gives your listings a chance to appear with enhanced presentation in search results — including property name, description, images, location, rating, and reviews — directly in the SERP. Without it, Google has to infer all of that from unstructured page content, which is less reliable and forfeits the rich result opportunity entirely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you need to do&lt;/strong&gt;&lt;br&gt;
If your site lists vacation rental properties, add &lt;code&gt;VacationRental&lt;/code&gt; structured data (JSON-LD recommended) to those pages. Refer to Google's documentation for the required and recommended properties. This rule will fire on any property listing page that SEOCode identifies as a vacation rental listing but finds no corresponding schema markup.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;movie-schema&lt;/code&gt; — Missing Movie structured data for movie listing pages
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info | &lt;strong&gt;Category:&lt;/strong&gt; Schema&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it checks&lt;/strong&gt;&lt;br&gt;
This rule flags pages that publish movie listings, movie databases, or editorial movie content but do not include &lt;code&gt;Movie&lt;/code&gt; structured data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters&lt;/strong&gt;&lt;br&gt;
Google Search uses &lt;code&gt;Movie&lt;/code&gt; structured data to power movie carousel rich results — the kind that appear for queries like "best movies of 2023." If your site publishes movie content and you want it to be eligible for that carousel, structured data is the mechanism that makes it possible. Without it, your content cannot participate in that rich result type regardless of how well it ranks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you need to do&lt;/strong&gt;&lt;br&gt;
Add &lt;code&gt;Movie&lt;/code&gt; structured data (JSON-LD recommended) to pages that describe individual movies. At minimum, include the movie title, director, and at least one image. This rule will fire on pages SEOCode identifies as movie content pages that are missing the markup.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;european-search-dataset-licensing&lt;/code&gt; — European Search Dataset Licensing Program eligibility
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info | &lt;strong&gt;Category:&lt;/strong&gt; Technical&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it checks&lt;/strong&gt;&lt;br&gt;
This rule surfaces an informational notice for publishers in the European Economic Area (EEA) about the Google European Search Dataset Licensing Program.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters&lt;/strong&gt;&lt;br&gt;
Google has updated the program overview, eligibility criteria, and application details for this program. It is a formal licensing arrangement between Google and EEA publishers — separate from standard indexing and crawling. If your organization publishes content in the EEA and you are interested in licensing that content to Google Search under this program, the eligibility criteria have changed and you should review the updated documentation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you need to do&lt;/strong&gt;&lt;br&gt;
This rule does not indicate a technical problem with your site. It is an informational flag for EEA publishers only. If this applies to you, review the updated program page linked in the Sources section below. If you are not an EEA publisher, this rule is not relevant to your situation and can be suppressed in your SEOCode configuration.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sources &amp;amp; References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://developers.google.com/search/updates" rel="noopener noreferrer"&gt;Google Search Central Documentation Changelog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developers.google.com/search/docs/appearance/structured-data/search-gallery" rel="noopener noreferrer"&gt;Google Structured Data — Search Gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;







&lt;h2&gt;
  
  
  Catch SEO issues before they ship
&lt;/h2&gt;

&lt;p&gt;SEOCode reviews every pull request against the latest Google SEO rules — automatically. No manual audits. No surprises after deploy.&lt;/p&gt;

&lt;p&gt;It checks for missing metadata, broken structured data, hreflang errors, robots.txt issues, and more — right inside your existing GitHub workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://seocode.io" rel="noopener noreferrer"&gt;Try SEOCode →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>release</category>
      <category>rulesupdate</category>
      <category>newrules</category>
    </item>
    <item>
      <title>SEOCode Rules Update v1.4.4</title>
      <dc:creator>SEOCode</dc:creator>
      <pubDate>Sat, 29 Aug 2026 06:45:30 +0000</pubDate>
      <link>https://dev.to/seocode_writer/seocode-rules-update-v144-20ep</link>
      <guid>https://dev.to/seocode_writer/seocode-rules-update-v144-20ep</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Rule&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Engine&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Update:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Site&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Reputation&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Abuse&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;(EEA),&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Favicon&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Checks,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Preferred&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Sources&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;—&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;v1.4.4"&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2026-08-29&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;1.4.4&lt;/span&gt;
&lt;span class="na"&gt;slug&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;rule-engine-update-1-4-4&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SEOCode&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;v1.4.4&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;adds&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;a&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;new&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;warning&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;for&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Google's&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;EEA-adjusted&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;site&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;reputation&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;abuse&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;policy&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;enforcement&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;updates&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;rules&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;for&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;favicon&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;validation&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;preferred&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;sources&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;markup."&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;rule-engine&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;changelog&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;technical-seo&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;google-search&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Rule Engine Update v1.4.4 — Site Reputation Abuse (EEA), Favicon Checks, and Preferred Sources
&lt;/h1&gt;

&lt;p&gt;Google's adjusted enforcement of the site reputation abuse policy in the European Economic Area is now flagged in pull requests — along with updated checks for favicons and preferred sources markup.&lt;/p&gt;




&lt;h2&gt;
  
  
  New Rules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;site-reputation-policy-eea&lt;/code&gt; — Site reputation abuse policy adjusted for EEA
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Warning&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it checks:&lt;/strong&gt;&lt;br&gt;
This rule flags sites that may be hosting third-party content in a way that could be interpreted as exploiting the site's existing ranking signals — specifically under Google's site reputation abuse policy. The new rule accounts for the fact that Google has adjusted &lt;em&gt;how it enforces&lt;/em&gt; this policy within the European Economic Area (EEA), meaning the enforcement approach differs from the global baseline.&lt;/p&gt;

&lt;p&gt;The policy itself is unchanged in its intent: hosting third-party content on a site to piggyback on that site's authority — regardless of whether the site owner is directly involved in or overseeing that content — is prohibited. What has changed is the regional enforcement posture for EEA-based sites.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters for SEO:&lt;/strong&gt;&lt;br&gt;
A violation of the site reputation abuse policy can result in a manual action against part or all of your site. If your site operates in the EEA, the enforcement path may look different from what Google's global documentation describes, which creates ambiguity that can lead to unintentional non-compliance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you need to do:&lt;/strong&gt;&lt;br&gt;
If your site is based in or serves the EEA and you host any third-party content — sponsored sections, partner-contributed pages, syndicated content, affiliate hubs — review Google's updated site reputation abuse policy documentation for EEA-specific guidance. If SEOCode flags this rule in a PR, it means content or configuration changes in that PR warrant a manual review against the policy before merging.&lt;/p&gt;




&lt;h2&gt;
  
  
  Updated Rules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;favicon-aspect-ratio&lt;/code&gt; — Favicon incorrect size, aspect ratio, or unsupported file format
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What changed:&lt;/strong&gt; The rule's description, name, fix template, and source reference have all been updated to reflect current Google documentation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it checks:&lt;/strong&gt;&lt;br&gt;
This rule validates that your site's favicon meets Google's requirements for use in Search results — specifically that the image is square (1:1 aspect ratio), meets minimum size requirements, and uses a supported file format.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters for SEO:&lt;/strong&gt;&lt;br&gt;
Google displays favicons in mobile search results next to your site name. An incorrectly sized, non-square, or unsupported favicon will be replaced by a generic placeholder. This doesn't affect ranking directly, but it does affect click-through appearance and brand recognition in the SERP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you need to do:&lt;/strong&gt;&lt;br&gt;
If this rule fires in a PR, check the updated fix template in the SEOCode annotation — the guidance has been revised to align with the latest Google documentation. Ensure your favicon is square, at least 48×48px, and served in a supported format (PNG, ICO, SVG, or WebP).&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;preferred-sources-feature&lt;/code&gt; — Missing preferred sources markup or configuration
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What changed:&lt;/strong&gt; The rule's description, fix template, and source reference have been updated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it checks:&lt;/strong&gt;&lt;br&gt;
This rule checks whether your site has the appropriate markup or configuration in place to signal preferred sources to Google — relevant for sites that want to influence how Google identifies authoritative or preferred versions of their content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters for SEO:&lt;/strong&gt;&lt;br&gt;
Without correct preferred sources configuration, Google may surface versions of your content that you did not intend as canonical or authoritative. This is particularly relevant for publishers, news sites, and any site where content appears in multiple forms or locations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you need to do:&lt;/strong&gt;&lt;br&gt;
Review the updated fix template in the SEOCode PR annotation if this rule fires. The description and recommended implementation steps have been revised — if you previously addressed this rule based on older guidance, it is worth re-checking your implementation against the updated documentation.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sources &amp;amp; References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://developers.google.com/search/updates" rel="noopener noreferrer"&gt;Google Search Central Documentation Changelog&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;







&lt;h2&gt;
  
  
  Catch SEO issues before they ship
&lt;/h2&gt;

&lt;p&gt;SEOCode reviews every pull request against the latest Google SEO rules — automatically. No manual audits. No surprises after deploy.&lt;/p&gt;

&lt;p&gt;It checks for missing metadata, broken structured data, hreflang errors, robots.txt issues, and more — right inside your existing GitHub workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://seocode.io" rel="noopener noreferrer"&gt;Try SEOCode →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>release</category>
      <category>rulesupdate</category>
      <category>newrules</category>
      <category>updatedrules</category>
    </item>
    <item>
      <title>SEOCode Rules Update v1.4.3</title>
      <dc:creator>SEOCode</dc:creator>
      <pubDate>Thu, 20 Aug 2026 14:11:59 +0000</pubDate>
      <link>https://dev.to/seocode_writer/seocode-rules-update-v143-o5o</link>
      <guid>https://dev.to/seocode_writer/seocode-rules-update-v143-o5o</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SEOCode&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Rule&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Engine&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Update:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;schema.org&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;v30,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;EU&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Digital&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Product&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Passport,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;HTTP&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;QUERY&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Method"&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2026-08-20&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;1.4.3&lt;/span&gt;
&lt;span class="na"&gt;slug&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;rule-engine-update-1-4-3&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Version&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;1.4.3&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;adds&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;four&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;new&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;informational&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;rules&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;covering&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;schema.org&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;v30&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;vocabulary&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;changes,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;EU&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Digital&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Product&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Passport&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;structured&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;data,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;financial&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;incentive&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;markup,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Google's&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;future&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;support&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;for&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;the&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;HTTP&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;QUERY&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;method."&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;rule-engine&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;schema-org&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;structured-data&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;technical-seo&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;ecommerce&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Rule Engine Update 1.4.3: schema.org v30, EU Digital Product Passport, and HTTP QUERY Method
&lt;/h1&gt;

&lt;p&gt;Version 1.4.3 adds four new informational rules that surface emerging structured data vocabulary and a forthcoming web standard — none require immediate action, but all have concrete implications for ecommerce sites and developers building search-facing APIs.&lt;/p&gt;




&lt;h2&gt;
  
  
  New Rules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;schema-org-v30-equivalence-annotations&lt;/code&gt; — schema.org v30 cross-vocabulary equivalences
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it checks:&lt;/strong&gt; Whether your site uses schema.org structured data alongside Open Graph tags, GS1 product identifiers, or Dublin Core metadata — and flags that schema.org v30 now formally declares equivalences between its vocabulary and those external systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters for SEO:&lt;/strong&gt; Schema.org v30 added formally declared equivalence annotations linking schema.org properties to terms in GS1 (used for product identification in retail and supply chains), Dublin Core (widely used in publishing and library metadata), and Open Graph (used for social sharing previews). "Formally declared" means these equivalences are machine-readable and part of the schema.org vocabulary itself, not just informal documentation.&lt;/p&gt;

&lt;p&gt;For sites that already implement both schema.org structured data and Open Graph tags — which is common — this alignment means parsers and search engines can more reliably reconcile the two metadata systems. For ecommerce sites using GS1 identifiers (barcodes, GTINs, GLNs), the equivalence annotations improve interoperability with supply chain and merchant data systems.&lt;/p&gt;

&lt;p&gt;v30 also extended the credential vocabulary to cover credentials beyond educational credentials, and extended &lt;code&gt;CompoundPriceSpecification&lt;/code&gt; to use the more generic &lt;code&gt;UnitPriceSpecification&lt;/code&gt; as its base type.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you need to do:&lt;/strong&gt; No immediate markup changes are required. If you maintain sites that use GS1 identifiers or Dublin Core metadata alongside schema.org, review the v30 vocabulary to confirm your existing markup aligns with the newly declared equivalences. If you use &lt;code&gt;CompoundPriceSpecification&lt;/code&gt;, check whether the updated type hierarchy affects your implementation.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;schema-org-v30-eu-digital-product-passport&lt;/code&gt; — EU Digital Product Passport structured data examples
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it checks:&lt;/strong&gt; Whether ecommerce sites targeting EU markets are aware that schema.org v30 now provides vocabulary and examples for implementing EU Digital Product Passport (DPP) data in structured data, aligned with UN/CEFACT codes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters for SEO:&lt;/strong&gt; The EU Digital Product Passport is a regulatory requirement under the EU Ecodesign for Sustainable Products Regulation (ESPR). When it comes into force, products sold in the EU will need to carry a digital record covering sustainability, repairability, and lifecycle data. Schema.org now provides the vocabulary to express this data in structured form.&lt;/p&gt;

&lt;p&gt;From an SEO perspective, structured data that satisfies regulatory requirements and is machine-readable by search engines creates an opportunity for richer product representations in search results — particularly as search engines expand merchant and product listing features. Getting ahead of the vocabulary now means less retrofit work when DPP requirements become mandatory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you need to do:&lt;/strong&gt; If you sell physical products in EU markets, review the schema.org DPP examples and UN/CEFACT code alignment. No implementation is required today, but understanding the vocabulary now will reduce the cost of compliance when ESPR requirements take effect.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;schema-org-v29-financial-incentives&lt;/code&gt; — Missing financial incentive structured data for eligible offers
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it checks:&lt;/strong&gt; Whether product offers on ecommerce sites that include sustainability-related incentives, rebates, or government-backed financial incentives are missing the financial incentive structured data vocabulary introduced in schema.org v29.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters for SEO:&lt;/strong&gt; Schema.org v29 added new types and enumeration types — including &lt;code&gt;IncentiveQualifiedExpenseType&lt;/code&gt; — along with new properties for &lt;code&gt;Offer&lt;/code&gt;, including &lt;code&gt;eligibleWithSupplier&lt;/code&gt;. This vocabulary lets you express conditions attached to an offer: for example, that a product qualifies for a government energy-efficiency rebate, or that a financial incentive is available when purchased through a specific supplier.&lt;/p&gt;

&lt;p&gt;Search engines use &lt;code&gt;Offer&lt;/code&gt; structured data to populate merchant listings and product rich results. If your offers have conditions that affect their effective price or eligibility, and those conditions aren't expressed in structured data, search engines may display incomplete or misleading offer information. Financial incentives are increasingly common in sustainability-adjacent product categories (EV chargers, heat pumps, energy-efficient appliances), where the incentive can be a significant part of the purchase decision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you need to do:&lt;/strong&gt; If your product offers include rebates, sustainability incentives, or supplier-conditional pricing, review the schema.org v29 financial incentive vocabulary and add the relevant properties to your &lt;code&gt;Offer&lt;/code&gt; markup. At minimum, audit whether your current &lt;code&gt;Offer&lt;/code&gt; structured data accurately reflects the conditions under which listed prices apply.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;http-query-method-google-search&lt;/code&gt; — Google Search will eventually support HTTP QUERY method
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it checks:&lt;/strong&gt; Flags awareness that Google has indicated it will eventually support the HTTP QUERY method in Google Search, and surfaces this for teams building search interfaces or APIs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters for SEO:&lt;/strong&gt; The HTTP QUERY method is an emerging web standard designed to fill a gap between GET and POST. GET requests are safe and cacheable but cannot carry a request body. POST requests can carry a body but are neither safe nor cacheable by default. QUERY is designed to be safe and cacheable while also supporting a request body — making it suitable for expressive search and query interactions that don't fit cleanly into GET's URL-parameter model.&lt;/p&gt;

&lt;p&gt;Google's indication that Search will eventually support QUERY is significant because it signals that the method is on a path toward mainstream adoption. For developers building search APIs, faceted search interfaces, or any system where query complexity exceeds what URL parameters can cleanly express, QUERY is worth tracking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you need to do:&lt;/strong&gt; Nothing immediately. Monitor the IETF standardization progress for HTTP QUERY and Google's implementation timeline. If you are designing new search or query APIs, factor QUERY into your architecture planning so you are not locked into patterns that will require significant rework later.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sources &amp;amp; References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://schema.org/docs/releases.html" rel="noopener noreferrer"&gt;Schema.org Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.seroundtable.com" rel="noopener noreferrer"&gt;Search Engine Roundtable&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;







&lt;h2&gt;
  
  
  Catch SEO issues before they ship
&lt;/h2&gt;

&lt;p&gt;SEOCode reviews every pull request against the latest Google SEO rules — automatically. No manual audits. No surprises after deploy.&lt;/p&gt;

&lt;p&gt;It checks for missing metadata, broken structured data, hreflang errors, robots.txt issues, and more — right inside your existing GitHub workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://seocode.io" rel="noopener noreferrer"&gt;Try SEOCode →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>release</category>
      <category>rulesupdate</category>
      <category>newrules</category>
    </item>
    <item>
      <title>SEOCode Rules Update v1.4.1</title>
      <dc:creator>SEOCode</dc:creator>
      <pubDate>Thu, 20 Aug 2026 05:11:31 +0000</pubDate>
      <link>https://dev.to/seocode_writer/seocode-rules-update-v141-294p</link>
      <guid>https://dev.to/seocode_writer/seocode-rules-update-v141-294p</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Rule&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Engine&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Update:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;AI&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Search&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Optimization&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Rules&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Refreshed&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;(v1.4.1)"&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2026-08-20&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;1.4.1&lt;/span&gt;
&lt;span class="na"&gt;slug&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;rule-engine-update-1-4-1&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SEOCode&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;v1.4.1&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;updates&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;two&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;rules&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;covering&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Google's&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;generative&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;AI&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;search&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;features,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;reflecting&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;changes&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;to&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Google's&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;official&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;AI&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;optimization&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;eligibility&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;documentation."&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;rule-engine&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;changelog&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;ai-search&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;generative-ai&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Rule Engine Update: AI Search Optimization Rules Refreshed (v1.4.1)
&lt;/h1&gt;

&lt;p&gt;Two rules covering Google's generative AI search features have been updated to reflect changes in Google's official documentation, scraped on 2026-08-20.&lt;/p&gt;




&lt;h2&gt;
  
  
  Updated Rules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;generative-ai-optimization&lt;/code&gt; — Content not optimized for generative AI Search features
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it checks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This rule inspects page content for signals that Google's generative AI search features — including AI Overviews and other AI-generated summaries — use to decide whether to surface your content. That includes things like clear, factual prose; well-structured answers to specific questions; and proper use of structured data where applicable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Google's AI Overviews pull from indexed pages, but not all indexed pages are treated equally. Pages that are structured to answer questions directly, with authoritative and unambiguous language, are more likely to be cited in AI-generated responses. If your content is vague, poorly structured, or relies on formatting that AI systems can't parse well, it may be skipped even when it's topically relevant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What changed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The rule's description, fix template, and source reference have been updated to align with the current &lt;a href="https://developers.google.com/search/docs/fundamentals/ai-optimization-guide" rel="noopener noreferrer"&gt;Google AI Optimization Guide&lt;/a&gt;. The guidance in that document has evolved, and the rule's recommendations now reflect the latest best practices Google has published.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you need to do&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If this rule is already passing in your PRs, no immediate action is required. If it's flagging issues, review the updated fix suggestions in the SEOCode PR comment — the recommended remediation may have changed from what you saw under v1.4.0.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;ai-features-snippet-eligibility&lt;/code&gt; — Page not eligible for AI features due to snippet, indexing, or Search Console requirements
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it checks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This rule checks whether a page meets the baseline requirements for appearing in Google's AI-powered search features. Eligibility depends on several factors: the page must be indexed, snippet generation must not be blocked (e.g., via &lt;code&gt;nosnippet&lt;/code&gt; or &lt;code&gt;max-snippet:0&lt;/code&gt; meta tags), and the site must not have settings in Search Console that restrict AI feature participation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A page can rank well in traditional search and still be completely excluded from AI Overviews or other AI features if any one of these eligibility gates is closed. Developers often block snippets for legitimate reasons — for example, on thin pages or duplicate content — but those same directives will disqualify a page from AI features. This rule surfaces that trade-off at PR time, before the change ships.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What changed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The rule's name has been updated to more precisely describe the three eligibility axes it covers: snippet settings, indexing status, and Search Console configuration. The description and fix template have also been revised to match the current &lt;a href="https://developers.google.com/search/docs/appearance/ai-features" rel="noopener noreferrer"&gt;Google AI Features in Search&lt;/a&gt; documentation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you need to do&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Check whether the rule name change affects any suppression rules or ignore configurations you have in &lt;code&gt;.seocode.yml&lt;/code&gt;. If you were suppressing this rule by name, update the identifier to match. The rule ID (&lt;code&gt;ai-features-snippet-eligibility&lt;/code&gt;) has not changed, so ID-based suppressions are unaffected.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sources &amp;amp; References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://developers.google.com/search/docs/fundamentals/ai-optimization-guide" rel="noopener noreferrer"&gt;Google AI Optimization Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developers.google.com/search/docs/appearance/ai-features" rel="noopener noreferrer"&gt;Google AI Features in Search&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Catch SEO issues before they ship
&lt;/h2&gt;

&lt;p&gt;SEOCode reviews every pull request against the latest Google SEO rules — automatically. No manual audits. No surprises after deploy.&lt;/p&gt;

&lt;p&gt;It checks for missing metadata, broken structured data, hreflang errors, robots.txt issues, and more — right inside your existing GitHub workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://seocode.io" rel="noopener noreferrer"&gt;Try SEOCode →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>release</category>
      <category>rulesupdate</category>
      <category>updatedrules</category>
    </item>
    <item>
      <title>SEOCode Rules Update v1.4.0</title>
      <dc:creator>SEOCode</dc:creator>
      <pubDate>Thu, 20 Aug 2026 04:58:33 +0000</pubDate>
      <link>https://dev.to/seocode_writer/seocode-rules-update-v140-1ben</link>
      <guid>https://dev.to/seocode_writer/seocode-rules-update-v140-1ben</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SEOCode&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Rule&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Engine&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;1.4.0:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Eight&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;New&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Rules&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Covering&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Spam,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Schema,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;AMP,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Canonicalization"&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2026-08-20&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;1.4.0&lt;/span&gt;
&lt;span class="na"&gt;slug&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;rule-engine-1-4-0&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Version&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;1.4.0&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;adds&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;eight&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;new&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;rules&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;responding&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;to&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Google's&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;August&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;2026&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Spam&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Update,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;updated&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;review&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;snippet&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;product&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;schema&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;guidelines,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;AMP&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;hosting&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;changes,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;canonicalization&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;timing&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;clarifications."&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;changelog&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;schema&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;technical-seo&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;spam&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;amp&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;canonicalization&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;reviews&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;product-schema&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  SEOCode Rule Engine 1.4.0: Eight New Rules Covering Spam, Schema, AMP, and Canonicalization
&lt;/h1&gt;

&lt;p&gt;Version 1.4.0 adds eight new rules in response to Google documentation updates and the August 2026 Spam Update, covering review integrity, product schema, AMP hosting behavior, canonicalization timing, and more.&lt;/p&gt;




&lt;h2&gt;
  
  
  New Rules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;google-august-2026-spam-update&lt;/code&gt; — Google August 2026 Spam Update Released
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Warning | &lt;strong&gt;Category:&lt;/strong&gt; Technical&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it checks:&lt;/strong&gt; This rule flags codebases and configurations that exhibit patterns associated with Google's spam policies: cloaking (serving different content to Googlebot than to users), doorway pages, scaled content abuse, site reputation abuse, back button hijacking, and fake reviews.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; Google's spam updates can cause severe ranking drops or complete removal from search results. Unlike broad core updates, spam updates target specific policy violations. If your site is hit, rankings do not recover on their own — you must identify and fix the violation, then submit a reconsideration request if a manual action was applied.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to do:&lt;/strong&gt; Review your codebase for any server-side logic that conditionally serves different HTML to known crawler user agents. Audit any programmatically generated content at scale. If you implement review markup, see the &lt;code&gt;fake-incentivized-reviews-policy&lt;/code&gt; rule below.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;fake-incentivized-reviews-policy&lt;/code&gt; — Fake or Undisclosed Incentivized Reviews Violate Review Snippet Guidelines
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Critical | &lt;strong&gt;Category:&lt;/strong&gt; Schema&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it checks:&lt;/strong&gt; This rule detects &lt;code&gt;Review&lt;/code&gt; and &lt;code&gt;AggregateRating&lt;/code&gt; structured data on pages where reviews may be fake or where incentivized reviews are not disclosed. It flags patterns such as review markup on pages with no visible review content, or review schema on pages that solicit reviews in exchange for discounts or other benefits without disclosure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; Google has added an explicit guideline to its review snippet documentation prohibiting fake reviews and requiring disclosure of incentivized reviews. Violations put your site at risk of losing review rich results eligibility entirely. Depending on severity, a manual spam action may also be applied. This applies to both reviews you collect directly and third-party review markup you implement on your site.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to do:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Never implement &lt;code&gt;Review&lt;/code&gt; schema for reviews that were not genuinely given by real customers.&lt;/li&gt;
&lt;li&gt;If you offer incentives (discounts, free products, loyalty points) in exchange for reviews, the review markup and the visible review text must clearly disclose this.&lt;/li&gt;
&lt;li&gt;Audit any third-party review widgets you embed — you are responsible for the markup they inject into your pages.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;product-category-schema&lt;/code&gt; — Missing &lt;code&gt;google_product_category&lt;/code&gt; in Product Structured Data
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info | &lt;strong&gt;Category:&lt;/strong&gt; Schema&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it checks:&lt;/strong&gt; This rule checks &lt;code&gt;Product&lt;/code&gt; and &lt;code&gt;Offer&lt;/code&gt; structured data for the presence of the &lt;code&gt;google_product_category&lt;/code&gt; property, which aligns with the Google Merchant Center feed attribute of the same name.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; Google's updated product structured data documentation now details how &lt;code&gt;google_product_category&lt;/code&gt; can be used within schema.org markup. Providing this property helps Google classify your products accurately in Search and Shopping, improving discoverability in merchant listings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to do:&lt;/strong&gt; If you have &lt;code&gt;Product&lt;/code&gt; or &lt;code&gt;Offer&lt;/code&gt; schema on your pages, add the &lt;code&gt;google_product_category&lt;/code&gt; property using the appropriate Google product taxonomy value. This is the same value you would use in a Merchant Center feed. If you do not run Shopping campaigns, this is informational — the property is not required for basic product rich results.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;sale-price-effective-date-schema&lt;/code&gt; — Missing Sale Price Effective Date in Product Structured Data
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info | &lt;strong&gt;Category:&lt;/strong&gt; Schema&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it checks:&lt;/strong&gt; This rule checks &lt;code&gt;Offer&lt;/code&gt; structured data on pages with a &lt;code&gt;priceValidUntil&lt;/code&gt; or sale price for the presence of sale duration properties that correspond to the Merchant Center &lt;code&gt;sale_price_effective_date&lt;/code&gt; attribute.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; Google has added a "Sale duration" section to the Merchant listing guide explaining how to express sale price validity windows in schema.org markup. Without effective date information, Google cannot determine when a sale price is valid, which can result in incorrect or missing sale price display in product rich results and merchant listings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to do:&lt;/strong&gt; If you mark up sale prices in your &lt;code&gt;Offer&lt;/code&gt; schema, add the relevant schema.org date range properties to define when the sale price is active. Align these values with what you submit in your Merchant Center feed under &lt;code&gt;sale_price_effective_date&lt;/code&gt;. Do not leave sale price markup in place after a sale has ended.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;canonicalization-reevaluation-time&lt;/code&gt; — Canonicalization Changes Take Time to Re-Evaluate
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info | &lt;strong&gt;Category:&lt;/strong&gt; Technical&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it checks:&lt;/strong&gt; This rule detects pull requests that modify canonical tags (&lt;code&gt;&amp;lt;link rel="canonical"&amp;gt;&lt;/code&gt;), hreflang annotations, or other canonicalization signals within a short window after a previous change to the same signals on the same URLs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; Google's updated canonicalization troubleshooting guide clarifies that changes to canonical signals are not processed immediately. Re-evaluation can take days to weeks depending on crawl frequency and site size. Making rapid successive changes to canonical signals while waiting for previous changes to take effect creates conflicting signals and can further delay resolution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to do:&lt;/strong&gt; When you change canonical tags or hreflang annotations, allow sufficient time — at minimum several days, potentially weeks for large sites — before making further changes to the same signals. Use Google Search Console's URL Inspection tool to monitor how Google has indexed a URL before modifying its canonicalization signals again.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;amp-direct-publisher-hosting&lt;/code&gt; — AMP Cache and Signed Exchanges No Longer Required for AMP Pages
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info | &lt;strong&gt;Category:&lt;/strong&gt; Technical&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it checks:&lt;/strong&gt; This rule flags build configurations, deployment scripts, or documentation comments that reference AMP Cache update steps or signed exchange (SXG) setup as required steps for AMP pages to appear in Google Search.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; Google has changed how it serves AMP pages: users are now taken directly to the publisher's AMP host rather than being served from the AMP Cache or via signed exchanges. This removes a maintenance burden. Existing AMP Cache configurations and signed exchange setups will not cause harm, but they are no longer required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to do:&lt;/strong&gt; You do not need to take any action for existing AMP pages to continue appearing in Google Search. If your deployment pipeline includes steps specifically to update the AMP Cache or configure signed exchanges for Google Search purposes, those steps can be removed. AMP content continues to rank on the same basis as any other web page.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;social-video-platform-search-console&lt;/code&gt; — Social and Video Platform Content Not Tracked in Search Console
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info | &lt;strong&gt;Category:&lt;/strong&gt; Technical&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it checks:&lt;/strong&gt; This rule surfaces an informational notice for repositories that contain YouTube embeds, social media embeds, or other video platform integrations, flagging that dedicated Search Console reporting is now available for this content type.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; Google has published a new guide on analyzing social and video platform content performance in Search Console. If your site publishes or embeds YouTube videos or social platform content, you can now measure how that content performs in Google Search through dedicated reporting — separate from your standard web search performance data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to do:&lt;/strong&gt; No code changes are required. If your site includes YouTube or social platform content, review Google's new Search Console guide to understand what data is available and how to use it to inform content decisions.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;package-tracking-early-adopters-closed&lt;/code&gt; — Package Tracking Early Adopters Program No Longer Accepting New Partners
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info | &lt;strong&gt;Category:&lt;/strong&gt; Schema&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it checks:&lt;/strong&gt; This rule flags any pull requests that add package tracking structured data markup on sites that are not already enrolled in Google's package tracking early adopters program.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; Google has updated the package tracking documentation to confirm the early adopters program is closed to new applicants. Implementing package tracking schema without program enrollment will not produce rich results in Google Search.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to do:&lt;/strong&gt; If your site is not already an accepted partner in the package tracking program, do not implement package tracking structured data — it will have no effect. If you are an existing partner, review the updated eligibility and feature availability sections of the package tracking documentation to confirm your implementation remains compliant.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sources &amp;amp; References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://developers.google.com/search/updates" rel="noopener noreferrer"&gt;Google Search Central Documentation Changelog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.seroundtable.com" rel="noopener noreferrer"&gt;Search Engine Roundtable&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Catch SEO issues before they ship
&lt;/h2&gt;

&lt;p&gt;SEOCode reviews every pull request against the latest Google SEO rules — automatically. No manual audits. No surprises after deploy.&lt;/p&gt;

&lt;p&gt;It checks for missing metadata, broken structured data, hreflang errors, robots.txt issues, and more — right inside your existing GitHub workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://seocode.io" rel="noopener noreferrer"&gt;Try SEOCode →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>release</category>
      <category>rulesupdate</category>
      <category>newrules</category>
    </item>
    <item>
      <title>SEOCode Rules Update v1.3.6</title>
      <dc:creator>SEOCode</dc:creator>
      <pubDate>Thu, 18 Jun 2026 20:08:01 +0000</pubDate>
      <link>https://dev.to/seocode_writer/seocode-rules-update-v136-49nj</link>
      <guid>https://dev.to/seocode_writer/seocode-rules-update-v136-49nj</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Rule&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Engine&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Update&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;1.3.6:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;HTML&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Is&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;the&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;SEO&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Standard,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Not&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Markdown"&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2026-06-18&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;1.3.6&lt;/span&gt;
&lt;span class="na"&gt;slug&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;rule-engine-update-1-3-6&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SEOCode&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;1.3.6&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;adds&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;one&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;new&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;informational&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;rule&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;clarifying&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;that&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Markdown&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;files&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;served&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;as&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;carry&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;no&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;SEO&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;advantage&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;over&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;HTML,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;per&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Google's&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;own&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;guidance."&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;rule-engine&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;changelog&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;technical-seo&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;html&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;markdown&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Rule Engine Update 1.3.6: HTML Is the SEO Standard, Not Markdown
&lt;/h1&gt;

&lt;p&gt;Version 1.3.6 adds one new informational rule based on explicit guidance from Google: serving content as Markdown files provides no SEO advantage over HTML, and HTML remains the canonical document format for Google Search.&lt;/p&gt;




&lt;h2&gt;
  
  
  New Rules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;html-standard-for-seo&lt;/code&gt; — Markdown files have no SEO advantage over HTML
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Category:&lt;/strong&gt; Technical&lt;/p&gt;

&lt;h4&gt;
  
  
  What the rule checks
&lt;/h4&gt;

&lt;p&gt;This rule flags cases where content is being served directly as Markdown files — for example, &lt;code&gt;.md&lt;/code&gt; files exposed at a public URL, or &lt;code&gt;llms.txt&lt;/code&gt;-style Markdown documents intended to carry indexable content. It surfaces a warning when your repository appears to be routing Markdown files as primary content endpoints rather than rendering them as HTML before serving.&lt;/p&gt;

&lt;h4&gt;
  
  
  Why it matters for SEO
&lt;/h4&gt;

&lt;p&gt;Google has stated directly that HTML is the standard for SEO, not Markdown. Google's crawlers and ranking systems are built around HTML as the document format of the web. A Markdown file served at a URL is not treated as an equivalent substitute for a properly structured HTML page. If you are publishing content you want to rank — articles, documentation, landing pages — and that content is being delivered as raw Markdown rather than rendered HTML, you are working against how Google's systems are designed to process and evaluate pages.&lt;/p&gt;

&lt;p&gt;This rule complements the existing &lt;code&gt;llms-txt-not-required&lt;/code&gt; rule. That rule addresses the specific pattern of creating &lt;code&gt;llms.txt&lt;/code&gt; files for AI crawlers. This rule addresses the broader question: even setting aside AI-specific files, Markdown as a general content delivery format is not a recommended or advantaged format for SEO.&lt;/p&gt;

&lt;h4&gt;
  
  
  What you need to do
&lt;/h4&gt;

&lt;p&gt;If this rule fires on your PR, check whether the files being added or modified are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Served directly as &lt;code&gt;.md&lt;/code&gt; files at a public URL&lt;/strong&gt; — If so, consider whether those files should be rendered to HTML before being served. Most static site generators (Jekyll, Hugo, Eleventy, Next.js, etc.) do this automatically. Verify your build pipeline is not accidentally exposing raw Markdown at canonical URLs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intended only as source files&lt;/strong&gt; — If the &lt;code&gt;.md&lt;/code&gt; files are build inputs that get compiled to HTML, and the HTML output is what gets served and indexed, no action is needed. The rule is informational and may not apply to your setup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intended as AI-readable documents&lt;/strong&gt; — See &lt;code&gt;llms-txt-not-required&lt;/code&gt; for guidance on that specific pattern.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No code change is required if your Markdown files are already being rendered to HTML by your build process. This rule exists to catch cases where that rendering step is missing or bypassed.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sources &amp;amp; References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.seroundtable.com" rel="noopener noreferrer"&gt;Search Engine Roundtable&lt;/a&gt; — "Google: HTML The Standard For SEO, Not Markdown Files" (scraped 2026-06-18)&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Catch SEO issues before they ship
&lt;/h2&gt;

&lt;p&gt;SEOCode reviews every pull request against the latest Google SEO rules — automatically. No manual audits. No surprises after deploy.&lt;/p&gt;

&lt;p&gt;It checks for missing metadata, broken structured data, hreflang errors, robots.txt issues, and more — right inside your existing GitHub workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://seocode.io" rel="noopener noreferrer"&gt;Try SEOCode →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>release</category>
      <category>rulesupdate</category>
      <category>newrules</category>
    </item>
    <item>
      <title>SEOCode Rules Update v1.3.5</title>
      <dc:creator>SEOCode</dc:creator>
      <pubDate>Thu, 18 Jun 2026 19:38:30 +0000</pubDate>
      <link>https://dev.to/seocode_writer/seocode-rules-update-v135-an6</link>
      <guid>https://dev.to/seocode_writer/seocode-rules-update-v135-an6</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SEOCode&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Rule&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Engine&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Update:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;v1.3.5"&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2026-06-18&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;1.3.5&lt;/span&gt;
&lt;span class="na"&gt;slug&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;rule-engine-update-1-3-5&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Version&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;1.3.5&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;adds&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;two&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;new&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;rules&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;covering&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;domain&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;migration&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;subdomain&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;variant&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;requirements&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;the&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;final&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;removal&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;of&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;FAQ&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;rich&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;result&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;documentation&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;from&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Google&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Search&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Central."&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;rule-engine&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;changelog&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;technical-seo&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;schema&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;domain-migration&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  SEOCode Rule Engine Update: v1.3.5
&lt;/h1&gt;

&lt;p&gt;Version 1.3.5 adds two new rules reflecting changes Google made to its Search Central documentation on 2026-06-18: updated site move guidance that now explicitly requires migrating all subdomain variants, and the complete removal of FAQ rich result documentation confirming the feature is dead.&lt;/p&gt;




&lt;h2&gt;
  
  
  New Rules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;site-move-domain-variants&lt;/code&gt; — Site move guidance: include all domain variants
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Warning&lt;br&gt;
&lt;strong&gt;Category:&lt;/strong&gt; Technical&lt;/p&gt;

&lt;h4&gt;
  
  
  What it checks
&lt;/h4&gt;

&lt;p&gt;When SEOCode detects a domain migration in progress (based on redirect configurations, canonical changes, or Search Console Change of Address signals in your codebase), this rule verifies that all subdomain variants of the origin domain are accounted for in the migration. Specifically, it flags cases where &lt;code&gt;www&lt;/code&gt; and non-&lt;code&gt;www&lt;/code&gt; variants are not both being migrated.&lt;/p&gt;

&lt;p&gt;For example: migrating &lt;code&gt;example.com&lt;/code&gt; → &lt;code&gt;newdomain.com&lt;/code&gt; without also migrating &lt;code&gt;www.example.com&lt;/code&gt; → &lt;code&gt;www.newdomain.com&lt;/code&gt; (or the appropriate canonical target) will trigger this warning.&lt;/p&gt;

&lt;h4&gt;
  
  
  Why it matters for SEO
&lt;/h4&gt;

&lt;p&gt;Google's Change of Address tool works at the domain level, but ranking signals are associated with specific URLs — including both &lt;code&gt;www&lt;/code&gt; and non-&lt;code&gt;www&lt;/code&gt; variants. If you only submit a Change of Address for one variant, Google may consolidate signals for that variant but leave the other behind. The result is a slower, incomplete migration where some of your historical ranking authority doesn't transfer to the new domain.&lt;/p&gt;

&lt;p&gt;Google updated its site move documentation on 2026-06-18 to make this requirement explicit. This rule encodes that guidance so incomplete migrations are caught at the PR stage rather than weeks later in Search Console.&lt;/p&gt;

&lt;h4&gt;
  
  
  What you need to do
&lt;/h4&gt;

&lt;p&gt;If this rule fires on your PR:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Confirm that both &lt;code&gt;www.olddomain.com&lt;/code&gt; and &lt;code&gt;olddomain.com&lt;/code&gt; have redirects pointing to the correct destination on the new domain.&lt;/li&gt;
&lt;li&gt;Submit the Change of Address tool in Google Search Console for each variant separately — the tool does not automatically apply to both.&lt;/li&gt;
&lt;li&gt;Ensure canonical tags on the new domain are consistent and point to your preferred variant.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If your site only ever served one variant (e.g., you enforced &lt;code&gt;www&lt;/code&gt; everywhere and &lt;code&gt;non-www&lt;/code&gt; returned a redirect), document that in your migration plan. The rule accepts a configuration override for sites that can confirm only one variant was ever active.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;faq-rich-result-documentation-removed&lt;/code&gt; — FAQ rich result documentation fully removed
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info&lt;br&gt;
&lt;strong&gt;Category:&lt;/strong&gt; Schema&lt;/p&gt;

&lt;h4&gt;
  
  
  What it checks
&lt;/h4&gt;

&lt;p&gt;This rule flags any use of &lt;code&gt;FAQPage&lt;/code&gt; structured data in your codebase. It does not block merges. It surfaces as an informational notice to ensure developers are aware that &lt;code&gt;FAQPage&lt;/code&gt; schema produces no rich result benefit in Google Search as of this update.&lt;/p&gt;

&lt;p&gt;Note: The existing rule &lt;code&gt;faq-schema-deprecated&lt;/code&gt; already issues actionable guidance on removing or replacing &lt;code&gt;FAQPage&lt;/code&gt; markup. This rule adds a milestone marker: Google has now fully removed the FAQ rich result documentation from Search Central, which is the final confirmation that the feature is gone — not deprecated, not limited, gone.&lt;/p&gt;

&lt;h4&gt;
  
  
  Why it matters for SEO
&lt;/h4&gt;

&lt;p&gt;When Google deprecates a rich result type, there is typically a window where the documentation remains available and some implementations may still render. That window is now closed for FAQ rich results. The documentation removal on 2026-06-18 is the definitive signal that no implementation of &lt;code&gt;FAQPage&lt;/code&gt; structured data will produce a visual rich result in Google Search.&lt;/p&gt;

&lt;p&gt;Leaving &lt;code&gt;FAQPage&lt;/code&gt; markup in your codebase is not harmful — it won't cause a penalty — but it is dead weight. It adds payload to your pages and creates maintenance surface for structured data that returns nothing.&lt;/p&gt;

&lt;h4&gt;
  
  
  What you need to do
&lt;/h4&gt;

&lt;p&gt;This rule is informational only. No immediate action is required to merge. However, you should plan to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Remove &lt;code&gt;FAQPage&lt;/code&gt; structured data from your templates and components.&lt;/li&gt;
&lt;li&gt;If you were using FAQ rich results as a click-through rate strategy, evaluate alternatives such as &lt;code&gt;HowTo&lt;/code&gt; (where applicable and still supported) or improving on-page content directly.&lt;/li&gt;
&lt;li&gt;Check your structured data testing pipeline — if you have tests that assert &lt;code&gt;FAQPage&lt;/code&gt; schema is present, those tests are now asserting the presence of inert markup and should be updated or removed.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Sources &amp;amp; References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://developers.google.com/search/updates" rel="noopener noreferrer"&gt;Google Search Central Documentation Changelog&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Catch SEO issues before they ship
&lt;/h2&gt;

&lt;p&gt;SEOCode reviews every pull request against the latest Google SEO rules — automatically. No manual audits. No surprises after deploy.&lt;/p&gt;

&lt;p&gt;It checks for missing metadata, broken structured data, hreflang errors, robots.txt issues, and more — right inside your existing GitHub workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://seocode.io" rel="noopener noreferrer"&gt;Try SEOCode →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>release</category>
      <category>rulesupdate</category>
      <category>newrules</category>
    </item>
    <item>
      <title>SEOCode Rules Update v1.3.2</title>
      <dc:creator>SEOCode</dc:creator>
      <pubDate>Tue, 09 Jun 2026 17:06:26 +0000</pubDate>
      <link>https://dev.to/seocode_writer/seocode-rules-update-v132-fe8</link>
      <guid>https://dev.to/seocode_writer/seocode-rules-update-v132-fe8</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SEOCode&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Rule&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Engine&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;1.3.2:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Three&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;New&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Schema&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Rules&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;for&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Speakable,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;IPTC&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Media&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Provenance,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Shipping&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Vocabulary"&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2026-06-09&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;1.3.2&lt;/span&gt;
&lt;span class="na"&gt;slug&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;rule-engine-1-3-2&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Version&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;1.3.2&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;adds&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;three&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;new&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;schema&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;rules&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;covering&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Google's&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;removal&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;of&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Speakable&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;rich&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;result&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;support,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;IPTC&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;digital&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;source&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;tagging&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;for&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;AI-generated&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;media,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;deprecated&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;shipping&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;schema&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;types."&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;schema&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;structured-data&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;release-notes&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;ai-content&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;ecommerce&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  SEOCode Rule Engine 1.3.2: Three New Schema Rules for Speakable, IPTC Media Provenance, and Shipping Vocabulary
&lt;/h1&gt;

&lt;p&gt;Version 1.3.2 adds three new schema rules that reflect recent changes to schema.org's vocabulary and Google's supported structured data features — covering a removed rich result type, AI-generated media provenance, and deprecated ecommerce shipping types.&lt;/p&gt;




&lt;h2&gt;
  
  
  New Rules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;speakable-schema-deprecated&lt;/code&gt; — SpeakableSpecification structured data no longer supported
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Warning | &lt;strong&gt;Category:&lt;/strong&gt; Schema&lt;/p&gt;

&lt;p&gt;&lt;code&gt;SpeakableSpecification&lt;/code&gt; was introduced in schema.org 3.2 and promoted to core in 3.5. It was designed to mark sections of a document as well-suited for text-to-speech rendering. Google has since removed Speakable from its list of supported rich result types and no longer processes &lt;code&gt;SpeakableSpecification&lt;/code&gt; for any Search feature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; Implementing this schema type has no effect on how your content appears in Google Search. It is dead weight in your structured data. The type still exists in the schema.org vocabulary and may be consumed by other platforms, but if your goal is Google Search optimization, this markup does nothing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to do:&lt;/strong&gt; If SEOCode flags this rule, audit whether you have a specific non-Google reason to keep &lt;code&gt;SpeakableSpecification&lt;/code&gt; markup. If not, remove it to reduce structured data noise.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;schema-org-iptc-digital-source-type&lt;/code&gt; — Missing IPTCDigitalSourceEnumeration for AI-generated media
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info | &lt;strong&gt;Category:&lt;/strong&gt; Schema&lt;/p&gt;

&lt;p&gt;Schema.org 24.0 introduced the &lt;code&gt;IPTCDigitalSourceEnumeration&lt;/code&gt; vocabulary with 14 coded values describing the origin of digital media. Schema.org 29.4 added further missing enumeration values. The vocabulary is applied via the &lt;code&gt;digitalSourceType&lt;/code&gt; property on &lt;code&gt;MediaObject&lt;/code&gt; and its subtypes: &lt;code&gt;ImageObject&lt;/code&gt;, &lt;code&gt;VideoObject&lt;/code&gt;, and &lt;code&gt;AudioObject&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Relevant values include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;TrainedAlgorithmicMediaDigitalSource&lt;/code&gt; — content generated entirely by a trained algorithm (e.g., an AI image generator)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;CompositeWithTrainedAlgorithmicMediaDigitalSource&lt;/code&gt; — content that combines real-world capture with AI-generated elements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; Google uses &lt;code&gt;digitalSourceType&lt;/code&gt; as a content provenance signal in its "About this image" feature. Correctly tagging AI-generated or AI-assisted media helps search engines and users understand the origin of your content. This also aligns with &lt;a href="https://c2pa.org/" rel="noopener noreferrer"&gt;C2PA&lt;/a&gt; metadata standards, which are increasingly relevant for content authenticity. This rule complements the existing &lt;code&gt;c2pa-metadata&lt;/code&gt; rule in SEOCode.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to do:&lt;/strong&gt; For any &lt;code&gt;ImageObject&lt;/code&gt;, &lt;code&gt;VideoObject&lt;/code&gt;, or &lt;code&gt;AudioObject&lt;/code&gt; in your structured data that represents AI-generated or AI-assisted media, add the &lt;code&gt;digitalSourceType&lt;/code&gt; property with the appropriate &lt;code&gt;IPTCDigitalSourceEnumeration&lt;/code&gt; value. If the media is fully human-captured with no algorithmic manipulation, tagging it explicitly is still good practice for provenance clarity.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ImageObject"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://example.com/image.jpg"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"digitalSourceType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;code&gt;schema-org-shipping-vocabulary-updated&lt;/code&gt; — Deprecated shipping schema types in use
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Warning | &lt;strong&gt;Category:&lt;/strong&gt; Schema&lt;/p&gt;

&lt;p&gt;Schema.org 29.0 deprecated &lt;code&gt;DeliveryTimeSettings&lt;/code&gt; and &lt;code&gt;ShippingRateSettings&lt;/code&gt;, replacing them with updated shipping vocabulary types.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; Google uses shipping structured data to populate shipping information in merchant listings and product rich results. As Google adopts the updated schema.org vocabulary, relying on deprecated types risks your shipping data being misread or ignored in product search features. The impact may not be immediate, but staying on deprecated types creates technical debt that will need to be resolved before it affects your merchant listings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to do:&lt;/strong&gt; If your product structured data uses &lt;code&gt;DeliveryTimeSettings&lt;/code&gt; or &lt;code&gt;ShippingRateSettings&lt;/code&gt;, migrate to the replacement types introduced in schema.org 29.0. Refer to the schema.org release notes for the specific replacement type names and property mappings.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sources &amp;amp; References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://schema.org/docs/releases.html" rel="noopener noreferrer"&gt;Schema.org Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Catch SEO issues before they ship
&lt;/h2&gt;

&lt;p&gt;SEOCode reviews every pull request against the latest Google SEO rules — automatically. No manual audits. No surprises after deploy.&lt;/p&gt;

&lt;p&gt;It checks for missing metadata, broken structured data, hreflang errors, robots.txt issues, and more — right inside your existing GitHub workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://seocode.io" rel="noopener noreferrer"&gt;Try SEOCode →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>release</category>
      <category>rulesupdate</category>
      <category>newrules</category>
    </item>
    <item>
      <title>SEOCode Rules Update v1.3.0</title>
      <dc:creator>SEOCode</dc:creator>
      <pubDate>Tue, 09 Jun 2026 16:29:51 +0000</pubDate>
      <link>https://dev.to/seocode_writer/seocode-rules-update-v130-3m7d</link>
      <guid>https://dev.to/seocode_writer/seocode-rules-update-v130-3m7d</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SEOCode&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Rule&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Engine&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;1.3.0:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;AI&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Mode&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;preferred&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;sources,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;hasAdultConsideration&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;schema,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;third-party&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;tool&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;guidance"&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2026-06-09&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;1.3.0"&lt;/span&gt;
&lt;span class="na"&gt;slug&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rule-engine-1-3-0"&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Version&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;1.3.0&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;adds&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;three&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;new&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;rules&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;covering&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Google's&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;expanded&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;preferred&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;sources&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;feature,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;the&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;new&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;hasAdultConsideration&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;merchant&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;listing&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;property,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Google's&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;published&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;guidance&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;on&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;evaluating&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;third-party&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;SEO&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;tools."&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;changelog"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rules"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;schema"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;technical-seo"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ai-overviews"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;structured-data"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  SEOCode Rule Engine 1.3.0
&lt;/h1&gt;

&lt;p&gt;Version 1.3.0 adds three rules reflecting changes Google published to its Search Central documentation on 2026-06-09, and updates one existing rule with revised references and fix guidance.&lt;/p&gt;




&lt;h2&gt;
  
  
  New Rules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;preferred-sources-ai-mode&lt;/code&gt; — Preferred sources not configured for AI Mode and AI Overviews
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info&lt;/p&gt;

&lt;p&gt;Google's preferred sources feature, which previously applied only to standard Google Search, now also applies to AI Overviews and AI Mode. Publishers who qualify and have correctly configured preferred sources can receive increased visibility in AI-generated search results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What the rule checks:&lt;/strong&gt;&lt;br&gt;
This rule flags pages where identity signals required for preferred sources eligibility are absent or misconfigured. Specifically, it looks for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Organization&lt;/code&gt; schema with a matching &lt;code&gt;sameAs&lt;/code&gt; or &lt;code&gt;url&lt;/code&gt; property&lt;/li&gt;
&lt;li&gt;Site name schema (&lt;code&gt;WebSite&lt;/code&gt; with a &lt;code&gt;name&lt;/code&gt; property)&lt;/li&gt;
&lt;li&gt;Self-referencing canonical URLs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;br&gt;
AI Overviews and AI Mode are now a significant surface in Google Search. Preferred sources is one of the few explicit mechanisms Google offers publishers to influence how their content is attributed in AI-generated answers. If your identity signals are broken or missing, you cannot benefit from this feature even if your site otherwise qualifies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to do:&lt;/strong&gt;&lt;br&gt;
Check that your site has valid &lt;code&gt;Organization&lt;/code&gt; and &lt;code&gt;WebSite&lt;/code&gt; structured data on your homepage, and that canonical URLs are correctly set across your pages. Then review Google's eligibility requirements for preferred sources (linked in the references below) to confirm your site qualifies.&lt;/p&gt;


&lt;h3&gt;
  
  
  &lt;code&gt;has-adult-consideration-schema&lt;/code&gt; — Missing &lt;code&gt;hasAdultConsideration&lt;/code&gt; property on adult merchant listings
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info&lt;/p&gt;

&lt;p&gt;Google has added support for the &lt;code&gt;hasAdultConsideration&lt;/code&gt; property in merchant listing structured data, aligning it with the existing Merchant Center feed specification.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What the rule checks:&lt;/strong&gt;&lt;br&gt;
This rule flags &lt;code&gt;Product&lt;/code&gt; or &lt;code&gt;Offer&lt;/code&gt; structured data on pages that appear to contain adult content but do not include the &lt;code&gt;hasAdultConsideration&lt;/code&gt; property.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;br&gt;
Without this property, Google must infer whether a merchant listing contains adult content algorithmically. Incorrect classification can affect where and how your products appear in shopping experiences — either surfacing them in contexts where adult content is filtered out, or failing to apply appropriate filters. Explicit markup removes the ambiguity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to do:&lt;/strong&gt;&lt;br&gt;
If you operate a merchant site with adult product listings, add &lt;code&gt;"hasAdultConsideration": true&lt;/code&gt; to the relevant &lt;code&gt;Offer&lt;/code&gt; or &lt;code&gt;Product&lt;/code&gt; structured data blocks. This is a direct signal to Google rather than leaving classification to inference.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"@context"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://schema.org/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Product"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Example Product"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"offers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Offer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"hasAdultConsideration"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"price"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"29.99"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"priceCurrency"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"USD"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;code&gt;third-party-seo-tools-guidance&lt;/code&gt; — Third-party SEO tool recommendations not critically evaluated
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; Info&lt;/p&gt;

&lt;p&gt;Google has published explicit guidance on how to evaluate recommendations from third-party SEO tools, services, and consultants.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What the rule checks:&lt;/strong&gt;&lt;br&gt;
This is a process-level rule rather than a markup check. It surfaces as an informational flag when SEOCode detects patterns in your codebase that are commonly associated with outdated or unverified SEO advice — for example, meta tags or structured data patterns that contradict current Google documentation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;br&gt;
Google's guidance makes four points worth internalizing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;SEO tool recommendations do not necessarily reflect Google's actual ranking signals.&lt;/li&gt;
&lt;li&gt;Many recommendations are based on correlation studies, not confirmed causation.&lt;/li&gt;
&lt;li&gt;Advice can become outdated as Google's systems evolve.&lt;/li&gt;
&lt;li&gt;Google Search Console data and official Search Central documentation should be the primary reference for SEO decisions.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This rule exists to prompt a review when your code contains patterns that may have originated from third-party tool output rather than verified guidance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to do:&lt;/strong&gt;&lt;br&gt;
When this rule fires, cross-reference the flagged pattern against the &lt;a href="https://developers.google.com/search/docs" rel="noopener noreferrer"&gt;Google Search Central documentation&lt;/a&gt;. If the pattern is not supported or recommended there, treat it as unverified. No code change is automatically required — this rule is informational and intended to prompt a review step.&lt;/p&gt;




&lt;h2&gt;
  
  
  Updated Rules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;preferred-sources-feature&lt;/code&gt; — Missing preferred sources markup or configuration
&lt;/h3&gt;

&lt;p&gt;The existing rule covering preferred sources configuration has been updated with revised references, an updated description, and a new fix template to reflect Google's expansion of the feature to AI Overviews and AI Mode. The underlying check logic is unchanged; the update ensures the guidance surfaced in pull request comments points to current documentation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to do:&lt;/strong&gt;&lt;br&gt;
No action required unless this rule is already firing on your PRs. If it is, the updated fix template provides more accurate remediation steps than the previous version.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sources &amp;amp; References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://developers.google.com/search/updates" rel="noopener noreferrer"&gt;Google Search Central Documentation Changelog&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Catch SEO issues before they ship
&lt;/h2&gt;

&lt;p&gt;SEOCode reviews every pull request against the latest Google SEO rules — automatically. No manual audits. No surprises after deploy.&lt;/p&gt;

&lt;p&gt;It checks for missing metadata, broken structured data, hreflang errors, robots.txt issues, and more — right inside your existing GitHub workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://seocode.io" rel="noopener noreferrer"&gt;Try SEOCode →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>release</category>
      <category>rulesupdate</category>
      <category>newrules</category>
      <category>updatedrules</category>
    </item>
  </channel>
</rss>
