<?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.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.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>
