Puppeteer ile sayfanın mobilde nasıl göründüğünü kontrol etmek

Arama motorları sayfaları artık mobil tarayıcı gözüyle görüyor. JavaScript'le değişen içerik, mobilde gizlenen menüler, geç yüklenen bağlantılar... Bunları gözle tek tek kontrol etmek yerine Puppeteer ile otomatik kontrol ediyorum.

npm install puppeteer
mobil-kontrol.mjs
import puppeteer from 'puppeteer';

const urls = process.argv.slice(2);
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.emulate(puppeteer.KnownDevices['Pixel 5']);

for (const url of urls) {
  // 1) ham HTML (JavaScript çalışmadan)
  const raw = await (await fetch(url)).text();
  const rawLinks = (raw.match(/<a\s[^>]*href=/gi) || []).length;

  // 2) mobil tarayıcıda, JavaScript çalıştıktan sonra
  await page.goto(url, { waitUntil: 'networkidle0' });
  const r = await page.evaluate(() => ({
    title: document.title,
    canonical: document.querySelector('link[rel=canonical]')?.href,
    links: document.querySelectorAll('a[href]').length,
    h1: document.querySelector('h1')?.textContent.trim(),
  }));

  await page.screenshot({ path: `mobil-${new URL(url).pathname.replace(/\W+/g, '_') || 'ana'}.png`, fullPage: true });
  console.log(url, { ...r, hamBaglanti: rawLinks });
}
await browser.close();
node mobil-kontrol.mjs https://ornek.com/ https://ornek.com/iletisim

Neye bakıyorum?

  • Bağlantı sayısı: Ham HTML'dekiyle JavaScript sonrası arasında büyük fark varsa, bağlantıların önemli kısmı JavaScript'e bağımlı demektir.
  • Başlık ve canonical: JavaScript bunları değiştiriyorsa, arama motoru hangisini görecek?
  • Ekran görüntüsü: Tam sayfa görüntüde kayan, taşan ya da boş kalan bölüm var mı?

Bu betik, "masaüstünde her şey yolunda" ile "mobilde gerçekten yolunda" arasındaki farkı birkaç saniyede gösteriyor.

Comments / questions

There's no comment section here. If you have a question or want to add something, message me on Telegram or send an email to [email protected]. Thanks!

Related pages