<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>PublishMyBlog: News for Website Owners and Creators</title><meta name="description" content="Daily news on AI, SEO, website tools, marketing, creators and SaaS for people who build, grow and earn from websites."><link rel="canonical" href="https://publishmyblog.com/"><meta name="robots" content="index, follow, max-image-preview:large"><link rel="icon" href="/favicon.ico" sizes="48x48"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="manifest" href="/site.webmanifest"><link rel="preload" href="/fonts/noto-sans.woff2" as="font" type="font/woff2" crossorigin><meta name="theme-color" content="#ffffff"><meta property="og:type" content="website"><meta property="og:site_name" content="PublishMyBlog"><meta property="og:title" content="PublishMyBlog: News for Website Owners and Creators"><meta property="og:description" content="Daily news on AI, SEO, website tools, marketing, creators and SaaS for people who build, grow and earn from websites."><meta property="og:url" content="https://publishmyblog.com/"><meta property="og:image" content="https://publishmyblog.com/og-default.png"><meta property="og:locale" content="en_US"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="PublishMyBlog: News for Website Owners and Creators"><meta name="twitter:description" content="Daily news on AI, SEO, website tools, marketing, creators and SaaS for people who build, grow and earn from websites."><meta name="twitter:image" content="https://publishmyblog.com/og-default.png"><link rel="alternate" type="application/rss+xml" title="PublishMyBlog" href="/rss.xml"><script type="application/ld+json">{"@context":"https://schema.org","@type":"NewsMediaOrganization","@id":"https://publishmyblog.com/#organization","name":"PublishMyBlog","url":"https://publishmyblog.com/","logo":{"@type":"ImageObject","url":"https://publishmyblog.com/icon-512.png","width":512,"height":512},"contactPoint":{"@type":"ContactPoint","contactType":"editorial","url":"https://publishmyblog.com/contact/"},"publishingPrinciples":"https://publishmyblog.com/editorial-policy/","correctionsPolicy":"https://publishmyblog.com/editorial-policy/#corrections-and-updates","ethicsPolicy":"https://publishmyblog.com/editorial-policy/#independence","sameAs":["https://x.com/PublishMyBlog","https://bsky.app/profile/publishmyblog.bsky.social","https://flipboard.com/@PublishMyBl2fi8","https://mastodon.social/@publishmyblog"],"founder":{"@type":"Person","@id":"https://saeedseo.com/#person","name":"Saeed Shahriar","url":"https://saeedseo.com/about/"}}</script><script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","@id":"https://publishmyblog.com/#website","name":"PublishMyBlog","url":"https://publishmyblog.com/","publisher":{"@id":"https://publishmyblog.com/#organization"},"inLanguage":"en","potentialAction":{"@type":"SearchAction","target":"https://publishmyblog.com/search/?q={search_term_string}","query-input":"required name=search_term_string"}}</script><script>
      document.documentElement.classList.add("js");
      try { const t = localStorage.getItem("theme"); if (t === "light" || t === "dark") document.documentElement.dataset.theme = t; } catch {}
    </script><script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}window.gtag=gtag;
var d={ad_storage:'denied',ad_user_data:'denied',ad_personalization:'denied'};
gtag('consent','default',Object.assign({analytics_storage:'denied',region:["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","IS","LI","NO","GB","CH"],wait_for_update:500},d));
gtag('consent','default',Object.assign({analytics_storage:'granted'},d));
try{var c=localStorage.getItem('consent');if(c==='granted'||c==='denied')gtag('consent','update',{analytics_storage:c})}catch(e){}</script><script>(function(w,d,i){w.dataLayer.push({'gtm.start':new Date().getTime(),event:'gtm.js'});var done=0,ev=['scroll','pointerdown','keydown','touchstart'];function load(){if(done)return;done=1;ev.forEach(function(e){w.removeEventListener(e,load)});var j=d.createElement('script');j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i;d.head.appendChild(j)}ev.forEach(function(e){w.addEventListener(e,load,{once:true,passive:true})});function later(){setTimeout(load,3500)}if(d.readyState==='complete')later();else w.addEventListener('load',later)})(window,document,'GTM-T87QHJFS');</script><link rel="stylesheet" href="/_astro/Layout.CJoGAbRr.css"></head><body><a class="skip-link" href="#content">Skip to content</a><header class="site-header"><div class="wrap header-inner"><a class="wordmark" href="/" aria-label="PublishMyBlog home"><svg class="logo-mark" aria-hidden="true" viewBox="0 0 64 64" width="32" height="32"><rect width="64" height="64" rx="15" fill="#2430D6"/><path d="M10 44.5 54 40.5v7.5L10 52z" fill="#FFD43B"/><path d="M27 12h24v7h-3v33h-7V19h-3v33h-7V38h-4a13 13 0 0 1 0-26z" fill="#fff"/></svg><svg class="wordmark-text" aria-hidden="true" viewBox="0 0 543 128" height="32" width="136"><use href="/_astro/wordmark.Tc3xLazK.svg#w"/></svg></a><nav class="primary-nav mega" aria-label="Main"><ul class="mega-bar"><li class="mega-item" data-mega><button class="mega-trigger" type="button" aria-expanded="false" aria-controls="mega-news">News<svg class="mega-chevron" aria-hidden="true" viewBox="0 0 12 12" width="12" height="12"><path d="m3 4.5 3 3 3-3" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg></button><div class="mega-panel" id="mega-news"><div class="wrap mega-inner"><ul class="mega-cards" aria-label="News sections"><li><a href="/ai/" style="--section-color: #7C3AED" class="menu-card"><span class="menu-card-image"><img src="/_astro/ai.BbR-OJZ5_Q34st.webp" srcset="/_astro/ai.BbR-OJZ5_Q34st.webp 305w, /_astro/ai.BbR-OJZ5_Wzbtv.webp 610w" alt sizes="min(305px, calc((100vw - 374px) / 3))" loading="lazy" decoding="async" width="305" height="172"></span><span class="menu-card-name">AI</span><span class="menu-card-text">AI tools, models and search for website owners.</span></a></li><li><a href="/seo/" style="--section-color: #047857" class="menu-card"><span class="menu-card-image"><img src="/_astro/seo.DS_uA5nc_2coISs.webp" srcset="/_astro/seo.DS_uA5nc_2coISs.webp 305w, /_astro/seo.DS_uA5nc_1Cn8SK.webp 610w" alt sizes="min(305px, calc((100vw - 374px) / 3))" loading="lazy" decoding="async" width="305" height="172"></span><span class="menu-card-name">SEO</span><span class="menu-card-text">Search news and practical guidance for growing visibility.</span></a></li><li><a href="/website-tools/" style="--section-color: #2563EB" class="menu-card"><span class="menu-card-image"><img src="/_astro/website-tools.1OtiUQAy_Z1gSqBF.webp" srcset="/_astro/website-tools.1OtiUQAy_Z1gSqBF.webp 305w, /_astro/website-tools.1OtiUQAy_Z2cmeP0.webp 610w" alt sizes="min(305px, calc((100vw - 374px) / 3))" loading="lazy" decoding="async" width="305" height="172"></span><span class="menu-card-name">Website Tools</span><span class="menu-card-text">Platforms and tools for building better websites.</span></a></li><li><a href="/marketing/" style="--section-color: #BE185D" class="menu-card"><span class="menu-card-image"><img src="/_astro/marketing.BD2uD9W6_W5pM2.webp" srcset="/_astro/marketing.BD2uD9W6_W5pM2.webp 305w, /_astro/marketing.BD2uD9W6_1aCaHK.webp 610w" alt sizes="min(305px, calc((100vw - 374px) / 3))" loading="lazy" decoding="async" width="305" height="172"></span><span class="menu-card-name">Marketing</span><span class="menu-card-text">Technology and tactics for reaching more customers.</span></a></li><li><a href="/creators/" style="--section-color: #B45309" class="menu-card"><span class="menu-card-image"><img src="/_astro/creators.aK0_sMNz_Z7vw74.webp" srcset="/_astro/creators.aK0_sMNz_Z7vw74.webp 305w, /_astro/creators.aK0_sMNz_Z9qeR3.webp 610w" alt sizes="min(305px, calc((100vw - 374px) / 3))" loading="lazy" decoding="async" width="305" height="172"></span><span class="menu-card-name">Creators</span><span class="menu-card-text">Publishing, audience growth and creator income.</span></a></li><li><a href="/saas/" style="--section-color: #0E7490" class="menu-card"><span class="menu-card-image"><img src="/_astro/saas.C0799hSu_Z1CelFu.webp" srcset="/_astro/saas.C0799hSu_Z1CelFu.webp 305w, /_astro/saas.C0799hSu_26AU2B.webp 610w" alt sizes="min(305px, calc((100vw - 374px) / 3))" loading="lazy" decoding="async" width="305" height="172"></span><span class="menu-card-name">SaaS &amp; Startups</span><span class="menu-card-text">Software launches and the businesses behind them.</span></a></li></ul><div class="mega-side"><h2>More news</h2><ul><li><a href="/latest/">Latest news</a></li><li><a href="/tags/">Topics</a></li><li><a href="/newsletter/">Newsletter</a></li><li><a href="/rss.xml">RSS feed</a></li></ul></div></div></div></li><li class="mega-item" data-mega><button class="mega-trigger" type="button" aria-expanded="false" aria-controls="mega-hub">SEO Hub<svg class="mega-chevron" aria-hidden="true" viewBox="0 0 12 12" width="12" height="12"><path d="m3 4.5 3 3 3-3" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg></button><div class="mega-panel" id="mega-hub"><div class="wrap mega-inner"><ul class="mega-cards mega-cards-hub" aria-label="SEO Hub"><li><a href="/hub/" style="--section-color: #2430D6" class="menu-card"><span class="menu-card-image"><img src="/_astro/links.CenBIkJ__yQmwm.webp" srcset="/_astro/links.CenBIkJ__yQmwm.webp 469w, /_astro/links.CenBIkJ__1GGEmL.webp 938w" alt sizes="min(469px, calc((100vw - 350px) / 2))" loading="lazy" decoding="async" width="469" height="264"></span><span class="menu-card-name">Links</span><span class="menu-card-text">124 places to link your site, each checked on a real page.</span></a></li><li><div style="--section-color: #2430D6" class="menu-card is-soon"><span class="menu-card-image"><img src="/_astro/tools.SOrrukKI_Z16h9pf.webp" srcset="/_astro/tools.SOrrukKI_Z16h9pf.webp 469w, /_astro/tools.SOrrukKI_1y8qa.webp 938w" alt sizes="min(469px, calc((100vw - 350px) / 2))" loading="lazy" decoding="async" width="469" height="264"></span><span class="menu-card-name">Tools<span class="menu-card-soon">Coming soon</span></span><span class="menu-card-text">Free SEO tools for site owners.</span></div></li></ul><div class="mega-side"><h2>Link hub by type</h2><ul><li><a href="/hub/launch-directories/">Launch directories</a></li><li><a href="/hub/ai-directories/">AI tool directories</a></li><li><a href="/hub/software-directories/">Software and review directories</a></li><li><a href="/hub/startup-databases/">Startup and company databases</a></li><li><a href="/hub/web-directories/">Web and business directories</a></li><li><a href="/hub/marketplaces/">Plugin, extension and template marketplaces</a></li><li><a href="/hub/developer/">Developer and data platforms</a></li><li><a href="/hub/publishing/">Publishing platforms</a></li><li><a href="/hub/publications/">Publications that take contributors</a></li><li><a href="/hub/profiles/">Profiles and creator pages</a></li><li><a href="/hub/communities/">Communities and Q&amp;A</a></li><li><a href="/hub/local/">Local business listings</a></li><li><a href="/hub/journalist-requests/">Journalist requests</a></li></ul></div></div></div></li><li class="mega-item"><a class="mega-link" href="/write-for-us/">Write for us</a></li><li class="mega-item"><a class="mega-link" href="/guides/">Guides</a></li><li class="mega-item"><a class="mega-link" href="/latest/">Latest</a></li></ul></nav><script type="module">var e=[...document.querySelectorAll(`[data-mega]`)],t=e=>e.querySelector(`.mega-trigger`),n=e=>t(e).getAttribute(`aria-expanded`)===`true`,r=(n,i)=>{i&&e.forEach(e=>e!==n&&r(e,!1)),t(n).setAttribute(`aria-expanded`,String(i)),n.toggleAttribute(`data-open`,i)},i=window.matchMedia(`(hover: hover) and (pointer: fine)`);for(let a of e){let e=0,o=0;t(a).addEventListener(`click`,()=>{n(a)&&Date.now()-o<600||r(a,!n(a))}),a.addEventListener(`pointerenter`,t=>{t.pointerType===`mouse`&&i.matches&&(clearTimeout(e),e=window.setTimeout(()=>{n(a)||(r(a,!0),o=Date.now())},120))}),a.addEventListener(`pointerleave`,t=>{t.pointerType===`mouse`&&i.matches&&(clearTimeout(e),e=window.setTimeout(()=>r(a,!1),250))}),a.addEventListener(`focusout`,e=>{a.contains(e.relatedTarget)||r(a,!1)})}document.addEventListener(`keydown`,i=>{if(i.key!==`Escape`)return;let a=e.find(n);a&&(r(a,!1),t(a).focus())}),document.addEventListener(`click`,t=>{e.forEach(e=>{e.contains(t.target)||r(e,!1)})});</script><div class="header-actions"><a class="search-trigger" href="/search/" data-open-search aria-label="Search" aria-keyshortcuts="/ Control+K Meta+K"><svg aria-hidden="true" viewBox="0 0 24 24" width="18" height="18"><circle cx="10.5" cy="10.5" r="6.5" fill="none" stroke="currentColor" stroke-width="2"></circle><path d="m15.5 15.5 5 5" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path></svg><span class="search-trigger-text">Search</span></a><button class="icon-button theme-toggle header-theme" type="button" aria-label="Switch to dark mode"><svg class="icon-moon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18"><path d="M12 3a9 9 0 1 0 9 9 7 7 0 0 1-9-9z" fill="currentColor"></path></svg><svg class="icon-sun" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18"><circle cx="12" cy="12" r="4.5" fill="currentColor"></circle><path d="M12 2v2.5M12 19.5V22M2 12h2.5M19.5 12H22M4.9 4.9l1.8 1.8M17.3 17.3l1.8 1.8M4.9 19.1l1.8-1.8M17.3 6.7l1.8-1.8" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path></svg></button><button class="icon-button menu-toggle" type="button" aria-expanded="false" aria-controls="site-menu" aria-label="Menu"><svg aria-hidden="true" viewBox="0 0 24 24" width="20" height="20"><path d="M4 7h16M4 12h16M4 17h16" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path></svg></button></div></div><nav class="mobile-nav" id="site-menu" aria-label="Menu"><div class="mnav"><section class="mnav-group" aria-labelledby="mnav-news"><h2 id="mnav-news">News</h2><ul class="mnav-cards"><li><a href="/ai/" style="--section-color: #7C3AED" class="menu-card"><span class="menu-card-image"><img src="/_astro/ai.BbR-OJZ5_Z27ClFt.webp" srcset="/_astro/ai.BbR-OJZ5_Z27ClFt.webp 243w, /_astro/ai.BbR-OJZ5_1y2JOU.webp 298w, /_astro/ai.BbR-OJZ5_Z4DVVS.webp 486w, /_astro/ai.BbR-OJZ5_13c3e7.webp 596w" alt sizes="(max-width: 640px) calc((100vw - 44px) / 2), min(243px, calc((100vw - 72px) / 3))" loading="lazy" decoding="async" width="243" height="137"></span><span class="menu-card-name">AI</span><span class="menu-card-text">AI tools, models and search for website owners.</span></a></li><li><a href="/seo/" style="--section-color: #047857" class="menu-card"><span class="menu-card-image"><img src="/_astro/seo.DS_uA5nc_Z1zpfRD.webp" srcset="/_astro/seo.DS_uA5nc_Z1zpfRD.webp 243w, /_astro/seo.DS_uA5nc_y8b81.webp 298w, /_astro/seo.DS_uA5nc_Zc5rY1.webp 486w, /_astro/seo.DS_uA5nc_2fkF8u.webp 596w" alt sizes="(max-width: 640px) calc((100vw - 44px) / 2), min(243px, calc((100vw - 72px) / 3))" loading="lazy" decoding="async" width="243" height="137"></span><span class="menu-card-name">SEO</span><span class="menu-card-text">Search news and practical guidance for growing visibility.</span></a></li><li><a href="/website-tools/" style="--section-color: #2563EB" class="menu-card"><span class="menu-card-image"><img src="/_astro/website-tools.1OtiUQAy_3doDa.webp" srcset="/_astro/website-tools.1OtiUQAy_3doDa.webp 243w, /_astro/website-tools.1OtiUQAy_ZiMc87.webp 298w, /_astro/website-tools.1OtiUQAy_1Qum2N.webp 486w, /_astro/website-tools.1OtiUQAy_1f3Fib.webp 596w" alt sizes="(max-width: 640px) calc((100vw - 44px) / 2), min(243px, calc((100vw - 72px) / 3))" loading="lazy" decoding="async" width="243" height="137"></span><span class="menu-card-name">Website Tools</span><span class="menu-card-text">Platforms and tools for building better websites.</span></a></li><li><a href="/marketing/" style="--section-color: #BE185D" class="menu-card"><span class="menu-card-image"><img src="/_astro/marketing.BD2uD9W6_Z1XtLse.webp" srcset="/_astro/marketing.BD2uD9W6_Z1XtLse.webp 243w, /_astro/marketing.BD2uD9W6_14eHU6.webp 298w, /_astro/marketing.BD2uD9W6_1H0xWq.webp 486w, /_astro/marketing.BD2uD9W6_nfW7f.webp 596w" alt sizes="(max-width: 640px) calc((100vw - 44px) / 2), min(243px, calc((100vw - 72px) / 3))" loading="lazy" decoding="async" width="243" height="137"></span><span class="menu-card-name">Marketing</span><span class="menu-card-text">Technology and tactics for reaching more customers.</span></a></li><li><a href="/creators/" style="--section-color: #B45309" class="menu-card"><span class="menu-card-image"><img src="/_astro/creators.aK0_sMNz_cBFt2.webp" srcset="/_astro/creators.aK0_sMNz_cBFt2.webp 243w, /_astro/creators.aK0_sMNz_Z1k8ac2.webp 298w, /_astro/creators.aK0_sMNz_2067DW.webp 486w, /_astro/creators.aK0_sMNz_Z24EVwm.webp 596w" alt sizes="(max-width: 640px) calc((100vw - 44px) / 2), min(243px, calc((100vw - 72px) / 3))" loading="lazy" decoding="async" width="243" height="137"></span><span class="menu-card-name">Creators</span><span class="menu-card-text">Publishing, audience growth and creator income.</span></a></li><li><a href="/saas/" style="--section-color: #0E7490" class="menu-card"><span class="menu-card-image"><img src="/_astro/saas.C0799hSu_7LU4r.webp" srcset="/_astro/saas.C0799hSu_7LU4r.webp 243w, /_astro/saas.C0799hSu_ce4OD.webp 298w, /_astro/saas.C0799hSu_1bLzkO.webp 486w, /_astro/saas.C0799hSu_Z1aIxFk.webp 596w" alt sizes="(max-width: 640px) calc((100vw - 44px) / 2), min(243px, calc((100vw - 72px) / 3))" loading="lazy" decoding="async" width="243" height="137"></span><span class="menu-card-name">SaaS &amp; Startups</span><span class="menu-card-text">Software launches and the businesses behind them.</span></a></li></ul></section><section class="mnav-group" aria-labelledby="mnav-hub"><h2 id="mnav-hub">SEO Hub</h2><ul class="mnav-cards"><li><a href="/hub/" style="--section-color: #2430D6" class="menu-card"><span class="menu-card-image"><img src="/_astro/links.CenBIkJ__I4Iv8.webp" srcset="/_astro/links.CenBIkJ__I4Iv8.webp 243w, /_astro/links.CenBIkJ__Z2gh8KG.webp 298w, /_astro/links.CenBIkJ__28ehXK.webp 486w, /_astro/links.CenBIkJ__Z28APGC.webp 596w" alt sizes="(max-width: 640px) calc((100vw - 44px) / 2), min(243px, calc((100vw - 72px) / 3))" loading="lazy" decoding="async" width="243" height="137"></span><span class="menu-card-name">Links</span><span class="menu-card-text">124 places to link your site, each checked on a real page.</span></a></li><li><div style="--section-color: #2430D6" class="menu-card is-soon"><span class="menu-card-image"><img src="/_astro/tools.SOrrukKI_ZW3Mqt.webp" srcset="/_astro/tools.SOrrukKI_ZW3Mqt.webp 243w, /_astro/tools.SOrrukKI_18Lt6D.webp 298w, /_astro/tools.SOrrukKI_s5L29.webp 486w, /_astro/tools.SOrrukKI_1grLaH.webp 596w" alt sizes="(max-width: 640px) calc((100vw - 44px) / 2), min(243px, calc((100vw - 72px) / 3))" loading="lazy" decoding="async" width="243" height="137"></span><span class="menu-card-name">Tools<span class="menu-card-soon">Coming soon</span></span><span class="menu-card-text">Free SEO tools for site owners.</span></div></li></ul></section><ul class="mnav-links"><li><a href="/write-for-us/">Write for us</a></li><li><a href="/guides/">Guides</a></li><li><a href="/latest/">Latest</a></li><li><a href="/tags/">Topics</a></li><li><a href="/newsletter/">Newsletter</a></li></ul></div></nav></header><dialog id="search-modal" class="search-modal" aria-labelledby="search-modal-title"><div class="search-modal-head"><h2 id="search-modal-title">Search PublishMyBlog</h2><form method="dialog"><button type="submit" class="search-modal-close">Close<span class="sr-only"> search</span></button></form></div><div class="live-search" data-live-search data-mode="dialog"><form class="search-field" role="search" action="/search/" method="get"><label for="search-dialog-input" class="sr-only">Search PublishMyBlog</label><svg aria-hidden="true" viewBox="0 0 24 24" width="20" height="20"><circle cx="10.5" cy="10.5" r="6.5" fill="none" stroke="currentColor" stroke-width="2"></circle><path d="m15.5 15.5 5 5" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path></svg><input id="search-dialog-input" name="q" type="search" autocomplete="off" spellcheck="false" placeholder="Search news, tools, companies…" role="combobox" aria-expanded="false" aria-controls="search-dialog-results" aria-autocomplete="list"></form><p class="search-status" aria-live="polite" data-status></p><ul class="search-results" id="search-dialog-results" role="listbox" aria-label="Search results" data-results></ul></div><script type="module">var e,t=()=>e??=(async()=>{let e=await import(`/pagefind/pagefind.js`);return await e.options({excerptLength:22}),e.init(),e})().catch(t=>{throw e=void 0,t}),n=`Search isn't available right now. Try again in a moment.`,r=(e,t)=>{let n=e.excerpt.replace(/<[^>]+>/g,``),r=e.meta.title||``;if(!e.meta.dek||!r||!r.toLowerCase().includes(n.trim().slice(0,18).toLowerCase()))return i(e.excerpt);let o=t.split(/\s+/).filter(e=>e.length>1).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)),s=a(e.meta.dek);return o.length?s.replace(RegExp(`\\b(${o.join(`|`)})`,`gi`),`<mark>$1</mark>`):s},i=e=>[...new DOMParser().parseFromString(`<p>${e}</p>`,`text/html`).body.firstElementChild.childNodes].map(e=>e.nodeName===`MARK`?`<mark>${a(e.textContent||``)}</mark>`:a(e.textContent||``)).join(``),a=e=>e.replace(/[&<>"]/g,e=>({"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`})[e]);function o(e){if(e.dataset.ready)return;e.dataset.ready=`1`;let i=e.querySelector(`input`),o=e.querySelector(`[data-results]`),s=e.querySelector(`[data-status]`),c=e.dataset.mode===`page`,l=0,u=0,d=-1,f=()=>[...o.querySelectorAll(`a`)],p=e=>{let t=f();d=t.length?(e+t.length)%t.length:-1,t.forEach((e,t)=>e.setAttribute(`aria-selected`,String(t===d))),d>=0?(t[d].scrollIntoView({block:`nearest`}),i.setAttribute(`aria-activedescendant`,t[d].id)):i.removeAttribute(`aria-activedescendant`)};async function m(){let l=i.value.trim(),f=++u;if(c&&history.replaceState(null,``,l?`?q=${encodeURIComponent(l)}`:location.pathname),l.length<3){o.innerHTML=``,d=-1,i.removeAttribute(`aria-activedescendant`),s.textContent=l?`Type at least 3 letters`:``,i.setAttribute(`aria-expanded`,`false`);return}s.textContent=`Searching…`;let p=[],m=0;try{let e=await(await t()).debouncedSearch(l,{},120);if(e===null||f!==u)return;m=e.results.length,p=await Promise.all(e.results.slice(0,c?20:8).map(e=>e.data()))}catch{f===u&&(s.textContent=n);return}if(f!==u)return;d=-1,i.removeAttribute(`aria-activedescendant`),o.innerHTML=p.map((t,n)=>`<li role="presentation"><a role="option" id="${e.dataset.mode}-opt-${n}" aria-selected="false" href="${a(t.url)}">
        ${t.meta.section?`<span class="result-section" style="--section-color:${a(t.meta.color||``)}">${a(t.meta.section)}</span>`:``}
        ${t.meta.draft?`<span class="draft-badge">Draft</span>`:``}<strong>${a(t.meta.title||t.url)}</strong><span class="result-excerpt">${r(t,l)}</span></a></li>`).join(``),i.setAttribute(`aria-expanded`,String(p.length>0));let h=l.slice(0,80);s.textContent=m?m>p.length?`Showing ${p.length} of ${m} results for “${h}”`:`${m} result${m===1?``:`s`} for “${h}”`:`No articles match “${h}”. Try a company or product name.`}if(i.addEventListener(`input`,()=>{clearTimeout(l),l=window.setTimeout(m,80)}),e.addEventListener(`pmb:load`,()=>{t().catch(()=>{s.textContent=n})}),i.addEventListener(`focus`,()=>e.dispatchEvent(new Event(`pmb:load`))),i.addEventListener(`keydown`,t=>{t.key===`ArrowDown`?(t.preventDefault(),p(d+1)):t.key===`ArrowUp`?(t.preventDefault(),p(d-1)):t.key===`Enter`&&d>=0?(t.preventDefault(),f()[d].click()):t.key===`Escape`&&!c&&(t.preventDefault(),e.closest(`dialog`)?.close())}),e.querySelector(`form`).addEventListener(`submit`,e=>{c&&(e.preventDefault(),m())}),c){let e=new URLSearchParams(location.search).get(`q`);e&&(i.value=e,m()),matchMedia(`(pointer: fine)`).matches&&i.focus()}}document.querySelectorAll(`[data-live-search]`).forEach(o);var s=document.querySelector(`#search-modal`);if(s){let e=s.querySelector(`input`),t=null,n=()=>{s.open||(t=document.activeElement,s.showModal(),e.select(),s.querySelector(`[data-live-search]`).dispatchEvent(new Event(`pmb:load`)))};s.addEventListener(`close`,()=>t?.focus()),document.querySelectorAll(`[data-open-search]`).forEach(e=>e.addEventListener(`click`,e=>{e.preventDefault(),n()})),document.addEventListener(`keydown`,e=>{let t=e.target,r=t.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(t.tagName);(e.key===`k`&&(e.metaKey||e.ctrlKey)||e.key===`/`&&!r)&&(e.preventDefault(),n())}),s.addEventListener(`click`,e=>{e.target===s&&s.close()})}</script></dialog><div id="content" tabindex="-1"><main class="wrap home-page"><header class="home-masthead"><div class="home-masthead-copy"><h1 class="home-tagline">News for people who build, grow and earn from <span class="home-tagline-mark">websites</span></h1><p class="home-promise">AI, SEO, website tools, marketing, creators and SaaS. Every story tells you <strong>who it affects</strong>, <strong>what to do next</strong> and <strong>why it matters</strong>.</p></div><section class="newsletter newsletter-masthead" aria-labelledby="nl-masthead-title"><h2 id="nl-masthead-title" class="newsletter-title">The week&#39;s biggest web news, in one email</h2><form class="newsletter-form" action="/api/subscribe" method="post" data-newsletter data-sitekey="0x4AAAAAAFswrPNTJqtcbIlw"><label class="sr-only" for="nl-masthead-email">Email address</label><input id="nl-masthead-email" name="email" type="email" aria-describedby="nl-masthead-fine" autocomplete="email" inputmode="email" spellcheck="false" required placeholder="Enter your email"><input type="hidden" name="page" value="/"><div class="sr-only" aria-hidden="true"><label>Website <input name="website" tabindex="-1" autocomplete="off"></label></div><button type="submit">Sign me up</button><div class="newsletter-check"></div></form><p class="newsletter-status" role="status" aria-live="polite"></p><p class="newsletter-fine" id="nl-masthead-fine">We email you a link to confirm first. One email a week, unsubscribe in one click. <a href="/privacy/">Privacy policy</a></p></section><script type="module">var e={ok:`Check your inbox: we've sent a link to confirm. Not there in a minute? Look in spam.`,email:`That email doesn't look right. Check it for a typo.`,"slow-down":`Too many tries. Give it a minute, then try again.`,"not-configured":`Signups open soon. Check back in a few days.`,bot:`We couldn't check you're human. Reload the page and try again.`},t=window,n,r=()=>n??=new Promise(e=>{t.onTurnstile=()=>e(t.turnstile);let n=document.createElement(`script`);n.src=`https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit&onload=onTurnstile`,n.async=!0,document.head.append(n)});document.querySelectorAll(`[data-newsletter]`).forEach(t=>{let n=t.parentElement.querySelector(`.newsletter-status`),i=t.querySelector(`button`),a=t.dataset.sitekey,o,s,c=()=>{},l=()=>s=new Promise(e=>c=e),u=()=>o??=r().then(e=>{l();let n=e.render(t.querySelector(`.newsletter-check`),{sitekey:a,appearance:`interaction-only`,size:`flexible`,action:`subscribe`,callback:e=>c(e),"expired-callback":()=>{l(),e.reset(n)}});return{ts:e,id:n}});a&&[`focusin`,`pointerenter`].forEach(e=>t.addEventListener(e,u,{once:!0})),t.addEventListener(`submit`,async r=>{r.preventDefault();let o=t.querySelector(`input[type="email"]`);i.disabled=!0,t.setAttribute(`aria-busy`,`true`),o.removeAttribute(`aria-invalid`),n.dataset.state=`busy`,n.textContent=`Sending…`;let c=`error`;try{let e=Object.fromEntries(new FormData(t));if(a){let{ts:t,id:n}=await u();e.token=await s,l(),t.reset(n)}let n=await(await fetch(t.action,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)})).json().catch(()=>({}));c=n.ok?`ok`:n.error||`error`}catch{}n.textContent=e[c]??`Something went wrong on our side. Try again in a minute.`,n.dataset.state=c===`ok`?`ok`:`error`,c===`ok`&&t.reset(),i.disabled=!1,t.removeAttribute(`aria-busy`),c===`email`&&o.setAttribute(`aria-invalid`,`true`),c!==`ok`&&o.focus()})});</script></header><section class="lead-story" aria-labelledby="lead-title" style="--section-color:#0E7490"><div class="lead-copy"><p class="story-kicker"><a class="section-label" href="/saas/">SaaS &amp; Startups</a></p><h2 id="lead-title"><a href="/saas/affle-to-buy-perion/">Affle to Buy Perion for $420 Million in an All-Cash Deal</a></h2><p class="lead-dek">Perion keeps its name, but Affle plans a review of its business contracts after closing.</p><p class="story-meta"><img class="avatar" src="/authors/saeed-shahriar-96.webp" width="28" height="28" alt="Saeed Shahriar"><span>By <a href="/author/saeed/">Saeed Shahriar</a></span><time datetime="2026-11-01T20:33:40.879Z">November 1, 2026</time></p></div><a class="lead-image" href="/saas/affle-to-buy-perion/" tabindex="-1" aria-hidden="true"><img class="cover" src="/saas/affle-to-buy-perion/cover.webp?v=7" srcset="/saas/affle-to-buy-perion/thumb.webp?v=7 480w, /saas/affle-to-buy-perion/cover-md.webp?v=7 800w, /saas/affle-to-buy-perion/cover.webp?v=7 1200w" sizes="(max-width: 1023px) calc(100vw - 32px), 58vw" width="1200" height="675" fetchpriority="high" alt="Two black leather folders embossed Affle and Perion on a boardroom table with a fountain pen between them, a sunset skyline behind"></a></section><section class="top-stories" aria-labelledby="top-title"><h2 id="top-title" class="rule-heading">Top stories</h2><div class="top-grid"><article class="story story-card" style="--section-color:#2563EB"><a class="story-thumb" href="/website-tools/northflank-breach-ai-api-keys/" tabindex="-1" aria-hidden="true"><img src="/website-tools/northflank-breach-ai-api-keys/thumb.webp?v=7" srcset="/website-tools/northflank-breach-ai-api-keys/thumb-sm.webp?v=7 240w, /website-tools/northflank-breach-ai-api-keys/thumb.webp?v=7 480w" sizes="(max-width: 640px) 104px, (max-width: 1100px) 50vw, 25vw" width="480" height="270" loading="lazy" decoding="async" alt="An open wall key cabinet with a Northflank plate and one empty hook, a brass key on the floor and a laptop glowing behind"></a><div class="story-copy"><p class="story-kicker"><a class="section-label" href="/website-tools/">Website Tools</a></p><h3 class="story-title"><a href="/website-tools/northflank-breach-ai-api-keys/">Northflank Breach Led to Abuse of Customers&#39; AI API Keys</a></h3><time class="story-date" datetime="2026-11-01T20:33:38.220Z" title="November 1, 2026">Nov 1</time></div></article><article class="story story-card" style="--section-color:#7C3AED"><a class="story-thumb" href="/ai/chatgpt-codex-shared-usage-allowance/" tabindex="-1" aria-hidden="true"><img src="/ai/chatgpt-codex-shared-usage-allowance/thumb.webp?v=7" srcset="/ai/chatgpt-codex-shared-usage-allowance/thumb-sm.webp?v=7 240w, /ai/chatgpt-codex-shared-usage-allowance/thumb.webp?v=7 480w" sizes="(max-width: 640px) 104px, (max-width: 1100px) 50vw, 25vw" width="480" height="270" loading="lazy" decoding="async" alt="A brushed-steel coaster engraved with the OpenAI logo under a mug, beside an analogue gauge and a laptop on a desk at dusk"></a><div class="story-copy"><p class="story-kicker"><a class="section-label" href="/ai/">AI</a></p><h3 class="story-title"><a href="/ai/chatgpt-codex-shared-usage-allowance/">ChatGPT and Codex Will Share One Usage Allowance in December</a></h3><time class="story-date" datetime="2026-11-01T20:29:22.717Z" title="November 1, 2026">Nov 1</time></div></article><article class="story story-card" style="--section-color:#2563EB"><a class="story-thumb" href="/website-tools/vercel-geist-serif-typeface/" tabindex="-1" aria-hidden="true"><img src="/website-tools/vercel-geist-serif-typeface/thumb.webp?v=7" srcset="/website-tools/vercel-geist-serif-typeface/thumb-sm.webp?v=7 240w, /website-tools/vercel-geist-serif-typeface/thumb.webp?v=7 480w" sizes="(max-width: 640px) 104px, (max-width: 1100px) 50vw, 25vw" width="480" height="270" loading="lazy" decoding="async" alt="A black Vercel triangle paperweight on a glossy black hardcover book on an oak desk, beside a brass fountain pen in morning light"></a><div class="story-copy"><p class="story-kicker"><a class="section-label" href="/website-tools/">Website Tools</a></p><h3 class="story-title"><a href="/website-tools/vercel-geist-serif-typeface/">Vercel Releases Geist Serif, a Free Display Font for Headlines</a></h3><time class="story-date" datetime="2026-11-01T09:33:49.837Z" title="November 1, 2026">Nov 1</time></div></article><article class="story story-card" style="--section-color:#2563EB"><a class="story-thumb" href="/website-tools/debugbear-script-hijack-polymarket/" tabindex="-1" aria-hidden="true"><img src="/website-tools/debugbear-script-hijack-polymarket/thumb.webp?v=7" srcset="/website-tools/debugbear-script-hijack-polymarket/thumb-sm.webp?v=7 240w, /website-tools/debugbear-script-hijack-polymarket/thumb.webp?v=7 480w" sizes="(max-width: 640px) 104px, (max-width: 1100px) 50vw, 25vw" width="480" height="270" loading="lazy" decoding="async" alt="A closed laptop with a DebugBear bear sticker on a dark desk at night, beside an open padlock and a blue network cable"></a><div class="story-copy"><p class="story-kicker"><a class="section-label" href="/website-tools/">Website Tools</a></p><h3 class="story-title"><a href="/website-tools/debugbear-script-hijack-polymarket/">DebugBear Tells Sites to Remove Its RUM Script After DNS Hijack</a></h3><time class="story-date" datetime="2026-11-01T09:31:25.143Z" title="November 1, 2026">Nov 1</time></div></article></div></section><div class="home-body"><section class="latest-block" aria-labelledby="latest-title"><header class="section-heading"><h2 id="latest-title">Latest</h2><a href="/latest/">All latest news</a></header><div class="river"><article class="story story-river" style="--section-color:#2563EB"><a class="story-thumb" href="/website-tools/cloudflare-private-origins-ga/" tabindex="-1" aria-hidden="true"><img src="/website-tools/cloudflare-private-origins-ga/thumb.webp?v=7" srcset="/website-tools/cloudflare-private-origins-ga/thumb-sm.webp?v=7 240w, /website-tools/cloudflare-private-origins-ga/thumb.webp?v=7 480w" sizes="(max-width: 640px) 104px, 200px" width="480" height="270" loading="lazy" decoding="async" alt="An orange Cloudflare cloud badge on the front of a server rack with green status lights, a blue network cable coiled nearby"></a><div class="story-copy"><p class="story-kicker"><a class="section-label" href="/website-tools/">Website Tools</a></p><h3 class="story-title"><a href="/website-tools/cloudflare-private-origins-ga/">Cloudflare Private Origins Goes GA for Enterprise Accounts</a></h3><p class="story-dek">Internal APIs and MCP servers get public-site protection without a public IP, if you&#39;re on Enterprise and get the return route right.</p><time class="story-date" datetime="2026-11-01T03:12:52.642Z" title="November 1, 2026">Nov 1</time></div></article><article class="story story-river" style="--section-color:#047857"><a class="story-thumb" href="/seo/google-num-100-parameter-returns/" tabindex="-1" aria-hidden="true"><img src="/seo/google-num-100-parameter-returns/thumb.webp?v=7" srcset="/seo/google-num-100-parameter-returns/thumb-sm.webp?v=7 240w, /seo/google-num-100-parameter-returns/thumb.webp?v=7 480w" sizes="(max-width: 640px) 104px, 200px" width="480" height="270" loading="lazy" decoding="async" alt="A black tote bag with an embroidered Google G logo hanging on a wooden chair in a sunlit co-working space"></a><div class="story-copy"><p class="story-kicker"><a class="section-label" href="/seo/">SEO</a></p><h3 class="story-title"><a href="/seo/google-num-100-parameter-returns/">Google May Be Bringing Back the num=100 Results Parameter</a></h3><p class="story-dek">One sighting after a knowledge panel click, and a failed attempt to repeat it: what that means for your rank tracking.</p><time class="story-date" datetime="2026-11-01T03:12:50.627Z" title="November 1, 2026">Nov 1</time></div></article><article class="story story-river" style="--section-color:#047857"><a class="story-thumb" href="/seo/fake-googlebots-ai-scrapers/" tabindex="-1" aria-hidden="true"><img src="/seo/fake-googlebots-ai-scrapers/thumb.webp?v=7" srcset="/seo/fake-googlebots-ai-scrapers/thumb-sm.webp?v=7 240w, /seo/fake-googlebots-ai-scrapers/thumb.webp?v=7 480w" sizes="(max-width: 640px) 104px, 200px" width="480" height="270" loading="lazy" decoding="async" alt="A hand holds a Google ID badge at a lobby security desk, beside a magnifying glass and a badge reader with a red light"></a><div class="story-copy"><p class="story-kicker"><a class="section-label" href="/seo/">SEO</a></p><h3 class="story-title"><a href="/seo/fake-googlebots-ai-scrapers/">Google&#39;s Gary Illyes Blames AI for More Fake Googlebots</a></h3><p class="story-dek">A user-agent that says Googlebot proves nothing; a DNS lookup does, and most small sites should look before they block.</p><time class="story-date" datetime="2026-10-31T17:56:00.057Z" title="October 31, 2026">Oct 31</time></div></article><article class="story story-river" style="--section-color:#2563EB"><a class="story-thumb" href="/website-tools/vercel-data-cache-runtime-cache/" tabindex="-1" aria-hidden="true"><img src="/website-tools/vercel-data-cache-runtime-cache/thumb.webp?v=7" srcset="/website-tools/vercel-data-cache-runtime-cache/thumb-sm.webp?v=7 240w, /website-tools/vercel-data-cache-runtime-cache/thumb.webp?v=7 480w" sizes="(max-width: 640px) 104px, 200px" width="480" height="270" loading="lazy" decoding="async" alt="A matte black Vercel triangle block on a birch desk beside a black keyboard and a white mug, plants on shelves behind"></a><div class="story-copy"><p class="story-kicker"><a class="section-label" href="/website-tools/">Website Tools</a></p><h3 class="story-title"><a href="/website-tools/vercel-data-cache-runtime-cache/">Vercel Will Bill Data Cache Use as It Moves to Runtime Cache</a></h3><p class="story-dek">Your code stays the same, but the reads and writes behind Next.js fetch caching go onto a meter.</p><time class="story-date" datetime="2026-10-31T17:55:57.148Z" title="October 31, 2026">Oct 31</time></div></article><article class="story story-river" style="--section-color:#BE185D"><a class="story-thumb" href="/marketing/reddit-splits-its-home-feed-into-for-you/" tabindex="-1" aria-hidden="true"><img src="/marketing/reddit-splits-its-home-feed-into-for-you/thumb.webp?v=7" srcset="/marketing/reddit-splits-its-home-feed-into-for-you/thumb-sm.webp?v=7 240w, /marketing/reddit-splits-its-home-feed-into-for-you/thumb.webp?v=7 480w" sizes="(max-width: 640px) 104px, 200px" width="480" height="270" loading="lazy" decoding="async" alt="Reddit logo, illustration for: Reddit splits its home feed into For You and Following"></a><div class="story-copy"><p class="story-kicker"><a class="section-label" href="/marketing/">Marketing</a></p><h3 class="story-title"><a href="/marketing/reddit-splits-its-home-feed-into-for-you/">Reddit splits its home feed into For You and Following</a></h3><p class="story-dek">Recommendations get a prime slot, so your posts may reach more than the people who follow your community.</p><time class="story-date" datetime="2026-10-31T12:52:58.900Z" title="October 31, 2026">Oct 31</time></div></article><article class="story story-river" style="--section-color:#047857"><a class="story-thumb" href="/seo/bing-splits-ai-training-and-grounding/" tabindex="-1" aria-hidden="true"><img src="/seo/bing-splits-ai-training-and-grounding/thumb.webp?v=7" srcset="/seo/bing-splits-ai-training-and-grounding/thumb-sm.webp?v=7 240w, /seo/bing-splits-ai-training-and-grounding/thumb.webp?v=7 480w" sizes="(max-width: 640px) 104px, 200px" width="480" height="270" loading="lazy" decoding="async" alt="Microsoft logo, illustration for: Bing Splits AI Training From AI Search Grounding"></a><div class="story-copy"><p class="story-kicker"><a class="section-label" href="/seo/">SEO</a></p><h3 class="story-title"><a href="/seo/bing-splits-ai-training-and-grounding/">Bing Splits AI Training From AI Search Grounding</a></h3><p class="story-dek">Microsoft&#39;s new controls will let you block AI training and still appear in AI answers, but the dates matter as much as the settings.</p><time class="story-date" datetime="2026-10-30T16:15:00.000Z" title="October 30, 2026">Oct 30</time></div></article><article class="story story-river" style="--section-color:#BE185D"><a class="story-thumb" href="/marketing/chatgpt-ads-ad-rewrites-default/" tabindex="-1" aria-hidden="true"><img src="/marketing/chatgpt-ads-ad-rewrites-default/thumb.webp?v=7" srcset="/marketing/chatgpt-ads-ad-rewrites-default/thumb-sm.webp?v=7 240w, /marketing/chatgpt-ads-ad-rewrites-default/thumb.webp?v=7 480w" sizes="(max-width: 640px) 104px, 200px" width="480" height="270" loading="lazy" decoding="async" alt="OpenAI logo, illustration for: ChatGPT Ads Turns On Ad Rewrites by Default: Check Your Setting"></a><div class="story-copy"><p class="story-kicker"><a class="section-label" href="/marketing/">Marketing</a></p><h3 class="story-title"><a href="/marketing/chatgpt-ads-ad-rewrites-default/">ChatGPT Ads Turns On Ad Rewrites by Default: Check Your Setting</a></h3><p class="story-dek">Advertisers gain more markets and a wider ad format, but ChatGPT can now rewrite your ads unless you opt out.</p><time class="story-date" datetime="2026-10-30T14:17:57.000Z" title="October 30, 2026">Oct 30</time></div></article><article class="story story-river" style="--section-color:#047857"><a class="story-thumb" href="/seo/google-will-back-one-robots-txt-rule-for-ai/" tabindex="-1" aria-hidden="true"><img src="/seo/google-will-back-one-robots-txt-rule-for-ai/thumb.webp?v=7" srcset="/seo/google-will-back-one-robots-txt-rule-for-ai/thumb-sm.webp?v=7 240w, /seo/google-will-back-one-robots-txt-rule-for-ai/thumb.webp?v=7 480w" sizes="(max-width: 640px) 104px, 200px" width="480" height="270" loading="lazy" decoding="async" alt="Google logo, illustration for: Google plans to support one robots.txt rule for AI training opt-outs"></a><div class="story-copy"><p class="story-kicker"><a class="section-label" href="/seo/">SEO</a></p><h3 class="story-title"><a href="/seo/google-will-back-one-robots-txt-rule-for-ai/">Google plans to support one robots.txt rule for AI training opt-outs</a></h3><p class="story-dek">A shared policy token would set broad AI training preferences alongside company-specific rules, with Google aiming to support it in 2027.</p><time class="story-date" datetime="2026-10-30T12:00:00.000Z" title="October 30, 2026">Oct 30</time></div></article></div><a class="more-link" href="/latest/">More latest news</a></section><section class="section-blocks" aria-labelledby="sections-title"><h2 id="sections-title" class="sr-only">News by section</h2><section class="home-section" aria-labelledby="block-ai" style="--section-color:#7C3AED"><h3 id="block-ai" class="section-heading section-heading-title"><a href="/ai/">AI</a></h3><ul><li class="block-story block-lead"><a class="block-thumb" href="/ai/google-connected-apps-platform-preview/" tabindex="-1" aria-hidden="true"><img class="cover" src="/ai/google-connected-apps-platform-preview/cover.webp?v=7" srcset="/ai/google-connected-apps-platform-preview/thumb-sm.webp?v=7 240w, /ai/google-connected-apps-platform-preview/thumb.webp?v=7 480w, /ai/google-connected-apps-platform-preview/cover-md.webp?v=7 800w, /ai/google-connected-apps-platform-preview/cover.webp?v=7 1200w" sizes="(max-width: 640px) 104px, (max-width: 1023px) 45vw, 380px" width="1200" height="675" loading="lazy" decoding="async" alt="Google logo, illustration for: Google Previews a Platform for Outside Apps in Gemini and Search"></a><div class="block-copy"><a class="block-title" href="/ai/google-connected-apps-platform-preview/">Google Previews a Platform for Outside Apps in Gemini and Search</a><p class="block-meta"><time datetime="2026-10-28T00:00:00.000Z">Oct 28</time></p></div></li><li class="block-story"><div class="block-copy"><a class="block-title" href="/ai/openai-gpt-6-1-terra/">OpenAI Releases GPT-6.1 Terra at Half the Price of Sol</a><p class="block-meta"><time datetime="2026-10-26T16:00:00.000Z">Oct 26</time></p></div></li><li class="block-story"><div class="block-copy"><a class="block-title" href="/ai/moonshot-kimi-k3-1-pro-open-weights/">Moonshot Releases Kimi K3.1 Pro, With Open Weights Due November 4</a><p class="block-meta"><time datetime="2026-10-23T12:00:00.000Z">Oct 23</time></p></div></li></ul><a class="more-link" href="/ai/">All AI stories</a></section><section class="home-section" aria-labelledby="block-seo" style="--section-color:#047857"><h3 id="block-seo" class="section-heading section-heading-title"><a href="/seo/">SEO</a></h3><ul><li class="block-story block-lead"><a class="block-thumb" href="/seo/ai-overviews-0-9-ctr-opt-out-test/" tabindex="-1" aria-hidden="true"><img class="cover" src="/seo/ai-overviews-0-9-ctr-opt-out-test/cover.webp?v=7" srcset="/seo/ai-overviews-0-9-ctr-opt-out-test/thumb-sm.webp?v=7 240w, /seo/ai-overviews-0-9-ctr-opt-out-test/thumb.webp?v=7 480w, /seo/ai-overviews-0-9-ctr-opt-out-test/cover-md.webp?v=7 800w, /seo/ai-overviews-0-9-ctr-opt-out-test/cover.webp?v=7 1200w" sizes="(max-width: 640px) 104px, (max-width: 1023px) 45vw, 380px" width="1200" height="675" loading="lazy" decoding="async" alt="Google logo, illustration for: AI Overviews Estimated at 0.9% CTR in One Opt-Out Test"></a><div class="block-copy"><a class="block-title" href="/seo/ai-overviews-0-9-ctr-opt-out-test/">AI Overviews Estimated at 0.9% CTR in One Opt-Out Test</a><p class="block-meta"><time datetime="2026-10-30T11:51:00.000Z">Oct 30</time></p></div></li><li class="block-story"><div class="block-copy"><a class="block-title" href="/seo/gemini-drops-utm-tags-from-cited-links/">Gemini Seems to Have Dropped UTM Tags From Cited Links</a><p class="block-meta"><time datetime="2026-10-30T11:11:00.000Z">Oct 30</time></p></div></li><li class="block-story"><div class="block-copy"><a class="block-title" href="/seo/reddit-logged-in-pages/">Reddit is moving to logged-in pages as search traffic falls</a><p class="block-meta"><time datetime="2026-10-29T20:08:31.000Z">Oct 29</time></p></div></li></ul><a class="more-link" href="/seo/">All SEO stories</a></section><section class="home-section" aria-labelledby="block-website-tools" style="--section-color:#2563EB"><h3 id="block-website-tools" class="section-heading section-heading-title"><a href="/website-tools/">Website Tools</a></h3><ul><li class="block-story block-lead"><a class="block-thumb" href="/website-tools/vercel-ai-crawler-assistant-controls/" tabindex="-1" aria-hidden="true"><img class="cover" src="/website-tools/vercel-ai-crawler-assistant-controls/cover.webp?v=7" srcset="/website-tools/vercel-ai-crawler-assistant-controls/thumb-sm.webp?v=7 240w, /website-tools/vercel-ai-crawler-assistant-controls/thumb.webp?v=7 480w, /website-tools/vercel-ai-crawler-assistant-controls/cover-md.webp?v=7 800w, /website-tools/vercel-ai-crawler-assistant-controls/cover.webp?v=7 1200w" sizes="(max-width: 640px) 104px, (max-width: 1023px) 45vw, 380px" width="1200" height="675" loading="lazy" decoding="async" alt="Vercel logo, illustration for: Vercel Lets Sites Control AI Crawlers and Assistants Separately"></a><div class="block-copy"><a class="block-title" href="/website-tools/vercel-ai-crawler-assistant-controls/">Vercel Lets Sites Control AI Crawlers and Assistants Separately</a><p class="block-meta"><time datetime="2026-10-29T00:00:00.000Z">Oct 29</time></p></div></li><li class="block-story"><div class="block-copy"><a class="block-title" href="/website-tools/wordpress-7-1-4-security-release/">WordPress 7.1.4 Security Release Fixes an Updater Flaw and More</a><p class="block-meta"><time datetime="2026-10-28T17:13:02.000Z">Oct 28</time></p></div></li><li class="block-story"><div class="block-copy"><a class="block-title" href="/website-tools/wordpress-7-3-ai-agent-access/">WordPress Targets 7.3 for Built-In AI Agent Access</a><p class="block-meta"><time datetime="2026-10-28T15:46:37.000Z">Oct 28</time></p></div></li></ul><a class="more-link" href="/website-tools/">All Website Tools stories</a></section><section class="home-section" aria-labelledby="block-marketing" style="--section-color:#BE185D"><h3 id="block-marketing" class="section-heading section-heading-title"><a href="/marketing/">Marketing</a></h3><ul><li class="block-story block-lead"><a class="block-thumb" href="/marketing/safari-block-pushes-ad-tech-server-side/" tabindex="-1" aria-hidden="true"><img class="cover" src="/marketing/safari-block-pushes-ad-tech-server-side/cover.webp?v=7" srcset="/marketing/safari-block-pushes-ad-tech-server-side/thumb-sm.webp?v=7 240w, /marketing/safari-block-pushes-ad-tech-server-side/thumb.webp?v=7 480w, /marketing/safari-block-pushes-ad-tech-server-side/cover-md.webp?v=7 800w, /marketing/safari-block-pushes-ad-tech-server-side/cover.webp?v=7 1200w" sizes="(max-width: 640px) 104px, (max-width: 1023px) 45vw, 380px" width="1200" height="675" loading="lazy" decoding="async" alt="Apple and WPP logo, illustration for: Apple's Safari block pushes ad tech server-side, WPP pitches InfoSum"></a><div class="block-copy"><a class="block-title" href="/marketing/safari-block-pushes-ad-tech-server-side/">Apple&#39;s Safari block pushes ad tech server-side, WPP pitches InfoSum</a><p class="block-meta"><time datetime="2026-10-30T04:01:00.000Z">Oct 30</time></p></div></li><li class="block-story"><div class="block-copy"><a class="block-title" href="/marketing/amazon-ads-hits-19-6b-in-q3/">Amazon Ads hits $19.6B in Q3 as it bets on its AI Ads Agent</a><p class="block-meta"><time datetime="2026-10-29T12:00:00.000Z">Oct 29</time></p></div></li><li class="block-story"><div class="block-copy"><a class="block-title" href="/marketing/tiktok-must-eat-restaurant-guide/">TikTok Adds Must Eat, a Restaurant Guide Built From Videos</a><p class="block-meta"><time datetime="2026-10-28T00:00:00.000Z">Oct 28</time></p></div></li></ul><a class="more-link" href="/marketing/">All Marketing stories</a></section><section class="home-section" aria-labelledby="block-creators" style="--section-color:#B45309"><h3 id="block-creators" class="section-heading section-heading-title"><a href="/creators/">Creators</a></h3><ul><li class="block-story block-lead"><a class="block-thumb" href="/creators/instagram-features-youtuber-offers/" tabindex="-1" aria-hidden="true"><img class="cover" src="/creators/instagram-features-youtuber-offers/cover.webp?v=7" srcset="/creators/instagram-features-youtuber-offers/thumb-sm.webp?v=7 240w, /creators/instagram-features-youtuber-offers/thumb.webp?v=7 480w, /creators/instagram-features-youtuber-offers/cover-md.webp?v=7 800w, /creators/instagram-features-youtuber-offers/cover.webp?v=7 1200w" sizes="(max-width: 640px) 104px, (max-width: 1023px) 45vw, 380px" width="1200" height="675" loading="lazy" decoding="async" alt="Instagram logo, illustration for: Instagram reportedly offers YouTubers up to $500,000 for Features"></a><div class="block-copy"><a class="block-title" href="/creators/instagram-features-youtuber-offers/">Instagram reportedly offers YouTubers up to $500,000 for Features</a><p class="block-meta"><time datetime="2026-10-29T23:56:56.000Z">Oct 29</time></p></div></li><li class="block-story"><div class="block-copy"><a class="block-title" href="/creators/youtube-tv-viewing-third-of-ad-revenue/">YouTube: Living Room TV Viewing Accounts for One-Third of Ad Revenue</a><p class="block-meta"><time datetime="2026-10-28T23:02:50.000Z">Oct 28</time></p></div></li><li class="block-story"><div class="block-copy"><a class="block-title" href="/creators/youtube-tests-a-20-adsense-payout-threshold/">YouTube Tests a $20 AdSense Payout Threshold</a><p class="block-meta"><time datetime="2026-10-28T18:31:00.000Z">Oct 28</time></p></div></li></ul><a class="more-link" href="/creators/">All Creators stories</a></section><section class="home-section" aria-labelledby="block-saas" style="--section-color:#0E7490"><h3 id="block-saas" class="section-heading section-heading-title"><a href="/saas/">SaaS &amp; Startups</a></h3><ul><li class="block-story block-lead"><a class="block-thumb" href="/saas/servicenow-chatgpt-mcp-plugin/" tabindex="-1" aria-hidden="true"><img class="cover" src="/saas/servicenow-chatgpt-mcp-plugin/cover.webp?v=7" srcset="/saas/servicenow-chatgpt-mcp-plugin/thumb-sm.webp?v=7 240w, /saas/servicenow-chatgpt-mcp-plugin/thumb.webp?v=7 480w, /saas/servicenow-chatgpt-mcp-plugin/cover-md.webp?v=7 800w, /saas/servicenow-chatgpt-mcp-plugin/cover.webp?v=7 1200w" sizes="(max-width: 640px) 104px, (max-width: 1023px) 45vw, 380px" width="1200" height="675" loading="lazy" decoding="async" alt="ServiceNow and OpenAI logo, illustration for: ServiceNow Puts Its Workflows Inside ChatGPT With an MCP Plugin"></a><div class="block-copy"><a class="block-title" href="/saas/servicenow-chatgpt-mcp-plugin/">ServiceNow Puts Its Workflows Inside ChatGPT With an MCP Plugin</a><p class="block-meta"><time datetime="2026-10-28T20:45:02.000Z">Oct 28</time></p></div></li><li class="block-story"><div class="block-copy"><a class="block-title" href="/saas/freshworks-buys-robusta/">Freshworks Buys Robusta to Add AI Incident Investigation</a><p class="block-meta"><time datetime="2026-10-28T00:00:00.000Z">Oct 28</time></p></div></li><li class="block-story"><div class="block-copy"><a class="block-title" href="/saas/guidewire-buys-hyperexponential/">Guidewire to Buy Hyperexponential for $1.7 Billion</a><p class="block-meta"><time datetime="2026-10-27T22:26:00.000Z">Oct 27</time></p></div></li></ul><a class="more-link" href="/saas/">All SaaS &amp; Startups stories</a></section><section class="home-section home-guides" aria-labelledby="block-guides" style="--section-color:#2430D6"><h3 id="block-guides" class="section-heading section-heading-title"><a href="/guides/">Guides</a></h3><ul class="guide-cards"><li class="block-story guide-card"><a class="block-thumb" href="/guides/website-migration-seo-checklist/" tabindex="-1" aria-hidden="true"><img class="cover" src="/guides/website-migration-seo-checklist/cover.webp?v=7" srcset="/guides/website-migration-seo-checklist/thumb-sm.webp?v=7 240w, /guides/website-migration-seo-checklist/thumb.webp?v=7 480w, /guides/website-migration-seo-checklist/cover-md.webp?v=7 800w, /guides/website-migration-seo-checklist/cover.webp?v=7 1200w" sizes="(max-width: 640px) 104px, (max-width: 1023px) 30vw, 380px" width="1200" height="675" loading="lazy" decoding="async" alt="Moving boxes and a hand truck in a bright, half-empty office, with a laptop on one box showing the Google logo"></a><div class="block-copy"><a class="block-title" href="/guides/website-migration-seo-checklist/">Website Migration SEO Checklist: Move a Site Without Losing Traffic</a><p class="block-meta"><time datetime="2026-11-01T03:00:58.852Z">Nov 1</time></p></div></li><li class="block-story guide-card"><a class="block-thumb" href="/guides/how-to-make-money-blogging/" tabindex="-1" aria-hidden="true"><img class="cover" src="/guides/how-to-make-money-blogging/cover.webp?v=7" srcset="/guides/how-to-make-money-blogging/thumb-sm.webp?v=7 240w, /guides/how-to-make-money-blogging/thumb.webp?v=7 480w, /guides/how-to-make-money-blogging/cover-md.webp?v=7 800w, /guides/how-to-make-money-blogging/cover.webp?v=7 1200w" sizes="(max-width: 640px) 104px, (max-width: 1023px) 30vw, 380px" width="1200" height="675" loading="lazy" decoding="async" alt="A laptop showing a blog page layout on a sunlit wooden desk, with a short stack of coins, a plant, a mug and a notebook beside it"></a><div class="block-copy"><a class="block-title" href="/guides/how-to-make-money-blogging/">How to Make Money Blogging: Pick the Right Revenue Model</a><p class="block-meta"><time datetime="2026-11-01T03:30:00.000Z">Nov 1</time></p></div></li><li class="block-story guide-card"><a class="block-thumb" href="/guides/wordpress-backup/" tabindex="-1" aria-hidden="true"><img class="cover" src="/guides/wordpress-backup/cover.webp?v=7" srcset="/guides/wordpress-backup/thumb-sm.webp?v=7 240w, /guides/wordpress-backup/thumb.webp?v=7 480w, /guides/wordpress-backup/cover-md.webp?v=7 800w, /guides/wordpress-backup/cover.webp?v=7 1200w" sizes="(max-width: 640px) 104px, (max-width: 1023px) 30vw, 380px" width="1200" height="675" loading="lazy" decoding="async" alt="A hand holding a metal USB drive engraved with the WordPress logo in front of a blurred aisle of data-centre server racks"></a><div class="block-copy"><a class="block-title" href="/guides/wordpress-backup/">WordPress Backups: How to Back Up Your Site and Test a Restore</a><p class="block-meta"><time datetime="2026-10-31T18:49:19.243Z">Oct 31</time></p></div></li></ul><a class="more-link" href="/guides/">All guides</a></section></section><aside class="rail home-rail" aria-label="Niches, topics and newsletter"><nav class="rail-box" aria-labelledby="rail-sections"><h2 id="rail-sections" class="rule-heading">Niches</h2><a class="section-link" href="/ai/" style="--section-color:#7C3AED"><strong>AI</strong></a><a class="section-link" href="/seo/" style="--section-color:#047857"><strong>SEO</strong></a><a class="section-link" href="/website-tools/" style="--section-color:#2563EB"><strong>Website Tools</strong></a><a class="section-link" href="/marketing/" style="--section-color:#BE185D"><strong>Marketing</strong></a><a class="section-link" href="/creators/" style="--section-color:#B45309"><strong>Creators</strong></a><a class="section-link" href="/saas/" style="--section-color:#0E7490"><strong>SaaS &amp; Startups</strong></a></nav><nav class="rail-box topics-box" aria-labelledby="rail-topics"><h2 id="rail-topics" class="rule-heading">Topics</h2><ul class="topic-list"><li><a href="/tags/google/"><span>Google</span></a></li><li><a href="/tags/youtube/"><span>YouTube</span></a></li><li><a href="/tags/ai-agents/"><span>AI agents</span></a></li><li><a href="/tags/openai/"><span>OpenAI</span></a></li><li><a href="/tags/website-security/"><span>Website security</span></a></li><li><a href="/tags/wordpress/"><span>WordPress</span></a></li><li><a href="/tags/ai-mode/"><span>AI Mode</span></a></li><li><a href="/tags/chatgpt/"><span>ChatGPT</span></a></li></ul><a class="rail-more" href="/tags/">All topics</a></nav><section class="work-card" aria-labelledby="rail-write"><p class="work-kicker"><svg aria-hidden="true" viewBox="0 0 24 24"><path d="M4 20h4L19 9l-4-4L4 16v4zM14 6l4 4" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"></path></svg>Contributors</p><h2 id="rail-write">Write for PublishMyBlog</h2><p>Got first-hand data, a test you ran, or real lessons from running websites? Pitch us a story.</p><a class="work-cta" href="/write-for-us/">See the guidelines</a></section><section class="newsletter newsletter-rail" aria-labelledby="nl-rail-title"><h2 id="nl-rail-title" class="newsletter-title">The week&#39;s biggest web news, delivered to your inbox</h2><p class="newsletter-pitch">Get a weekly recap of the AI, SEO and website news that matters, and exactly what to do about it.</p><form class="newsletter-form" action="/api/subscribe" method="post" data-newsletter data-sitekey="0x4AAAAAAFswrPNTJqtcbIlw"><label class="sr-only" for="nl-rail-email">Email address</label><input id="nl-rail-email" name="email" type="email" aria-describedby="nl-rail-fine" autocomplete="email" inputmode="email" spellcheck="false" required placeholder="Enter your email"><input type="hidden" name="page" value="/"><div class="sr-only" aria-hidden="true"><label>Website <input name="website" tabindex="-1" autocomplete="off"></label></div><button type="submit">Sign me up</button><div class="newsletter-check"></div></form><p class="newsletter-status" role="status" aria-live="polite"></p><p class="newsletter-fine" id="nl-rail-fine">We email you a link to confirm first. One email a week, unsubscribe in one click. <a href="/privacy/">Privacy policy</a></p></section></aside></div></main></div><footer class="site-footer"><div class="wrap footer-grid"><div class="footer-brand"><a class="wordmark" href="/" aria-label="PublishMyBlog"><svg class="logo-mark" aria-hidden="true" viewBox="0 0 64 64" width="32" height="32"><rect width="64" height="64" rx="15" fill="#2430D6"/><path d="M10 44.5 54 40.5v7.5L10 52z" fill="#FFD43B"/><path d="M27 12h24v7h-3v33h-7V19h-3v33h-7V38h-4a13 13 0 0 1 0-26z" fill="#fff"/></svg><svg class="wordmark-text" aria-hidden="true" viewBox="0 0 543 128" height="32" width="136"><use href="/_astro/wordmark.Tc3xLazK.svg#w"/></svg></a><p>Daily news and analysis for people who build, grow and earn from websites.</p></div><nav aria-label="All niches"><h2>Niches</h2><a href="/ai/">AI</a><a href="/seo/">SEO</a><a href="/website-tools/">Website Tools</a><a href="/marketing/">Marketing</a><a href="/creators/">Creators</a><a href="/saas/">SaaS &amp; Startups</a></nav><nav aria-label="PublishMyBlog"><h2>PublishMyBlog</h2><a href="/about/">About</a><a href="/editorial-policy/">Editorial policy</a><a href="/write-for-us/">Write for us</a><a href="/contact/">Contact</a><a href="/guides/">Guides</a><a href="/hub/">Link hub</a><a href="/newsletter/">Newsletter</a><a href="/search/">Search</a><a href="/tags/">Topics</a></nav><nav aria-label="Follow"><h2>Follow</h2><a href="/rss.xml">RSS feed</a><a href="https://x.com/PublishMyBlog" rel="noopener nofollow me">X</a><a href="https://bsky.app/profile/publishmyblog.bsky.social" rel="noopener nofollow me">Bluesky</a><a href="https://flipboard.com/@PublishMyBl2fi8" rel="noopener nofollow me">Flipboard</a><a href="https://mastodon.social/@publishmyblog" rel="noopener nofollow me">Mastodon</a><a href="/latest/">All latest news</a></nav><div class="footer-bottom"><span>© 2026 PublishMyBlog</span><span><a href="/privacy/">Privacy</a><a href="/terms/">Terms</a><button type="button" class="footer-link-button" data-consent-settings>Cookie settings</button></span></div></div></footer><section class="consent" id="consent-banner" aria-labelledby="consent-title" hidden><div class="consent-inner"><div><h2 id="consent-title">Can we count your visit?</h2><p>Google Analytics cookies show us which stories are read, never used for ads. Change it any time under Cookie settings. <a href="/privacy/">Privacy policy</a></p></div><div class="consent-actions"><button type="button" class="consent-accept" data-consent="granted">Accept analytics</button><button type="button" class="consent-reject" data-consent="denied">Reject</button></div></div></section><script>
  (() => {
    const banner = document.getElementById("consent-banner");
    if (!banner) return;
    const KEY = "consent";
    const read = () => { try { return localStorage.getItem(KEY); } catch { return null; } };
    const apply = choice => window.gtag?.("consent", "update", { analytics_storage: choice });
    // While the bar is up, pad the page by its height so nothing (the footer included) stays hidden under it.
    let opener = null;
    const pad = () => { document.body.style.paddingBottom = banner.hidden ? "" : banner.offsetHeight + 16 + "px"; };
    const show = () => { banner.hidden = false; pad(); };
    addEventListener("resize", pad);
    banner.querySelectorAll("[data-consent]").forEach(b => b.addEventListener("click", () => {
      const choice = b.dataset.consent;
      try { localStorage.setItem(KEY, choice); } catch {}
      apply(choice);
      banner.hidden = true;
      pad();
      opener?.focus(); opener = null;
    }));
    // Reopened from "Cookie settings": focus the first choice, and return to the footer button after.
    document.querySelectorAll("[data-consent-settings]").forEach(b => b.addEventListener("click", () => { opener = b; show(); banner.querySelector("button")?.focus(); }));
    const saved = read();
    if (saved) return;
    // Only visitors from consent regions see the banner. If the check fails, show it: asking
    // someone who didn't need asking is better than tracking someone who did.
    fetch("/api/geo", { credentials: "omit" }).then(r => r.ok ? r.json() : { consent: true }).catch(() => ({ consent: true })).then(d => { if (d.consent) show(); });
  })();
</script><script>
      // Light unless the reader picked dark with the toggle; the OS setting is ignored (Saeed, 2026-11-01).
      const isDark = () => document.documentElement.dataset.theme === "dark";
      function syncTheme() {
        const dark = isDark();
        document.querySelectorAll(".theme-toggle").forEach(b => b.setAttribute("aria-label", dark ? "Switch to light mode" : "Switch to dark mode"));
        document.querySelectorAll('meta[name="theme-color"]').forEach(m => m.setAttribute("content", dark ? "#0f1117" : "#ffffff"));
      }
      document.querySelectorAll(".theme-toggle").forEach(b => b.addEventListener("click", () => {
        document.documentElement.dataset.theme = isDark() ? "light" : "dark";
        try { localStorage.setItem("theme", document.documentElement.dataset.theme); } catch {}
        syncTheme();
      }));
      // Menu panel (below 1100px): a disclosure. Escape or a tap outside closes it and focus goes back to the button.
      const header = document.querySelector(".site-header"), menuButton = header.querySelector(".menu-toggle");
      // The panel scrolls inside the space left below it, so its last link never ends up off screen
      // (the header isn't always at the top: the preview strip, or a page not yet scrolled).
      const menuPanel = header.querySelector(".mobile-nav");
      const fitMenu = () => { if (header.hasAttribute("data-menu-open")) menuPanel.style.maxHeight = `${window.innerHeight - menuPanel.getBoundingClientRect().top}px`; };
      const setMenu = open => { header.toggleAttribute("data-menu-open", open); menuButton.setAttribute("aria-expanded", String(open)); fitMenu(); };
      window.addEventListener("resize", fitMenu);
      window.addEventListener("scroll", fitMenu, { passive: true });
      menuButton.addEventListener("click", () => setMenu(!header.hasAttribute("data-menu-open")));
      document.addEventListener("keydown", e => { if (e.key === "Escape" && header.hasAttribute("data-menu-open")) { setMenu(false); menuButton.focus(); } });
      document.addEventListener("click", e => { if (!header.contains(e.target)) setMenu(false); });
      syncTheme();
      // Email reveal: the address is stored reversed and base64-encoded, and only becomes a link on click.
      document.querySelectorAll("[data-email]").forEach(el => el.addEventListener("click", () => {
        const m = atob(el.dataset.email).split("").reverse().join("");
        const a = document.createElement("a");
        a.href = "mailto:" + m + (el.dataset.subject ? "?subject=" + encodeURIComponent(el.dataset.subject + ": ") : "");
        a.textContent = m;
        a.className = "email-revealed";
        el.replaceWith(a); a.focus();
      }, { once: true }));
    </script><script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a53db4f089e5e9c0',t:'MTc5MzU2NTU0NQ=='};var l=window.parent.location,o;try{o=new URL(l.origin).origin}catch(e){try{o=new URL(new URL(l.href).origin).origin}catch(e){o=''}}var u='/cdn-cgi/challenge-platform/scripts/jsd/main.js?ray=a53db4f089e5e9c0',a=document.createElement('script');a.src=o?new URL(u,o).href:u;document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html>