FUTIA
SEO12 min read

Programmatic SEO Turkey: How to Index 79,000 Pages?

How we created 79,000 separate pages for 79,000 doctor profiles on doktorbul.com, got them indexed by Google, and captured long-tail searches. Technical details, schema markup, sitemap strategy.

Miraç Eroğlu
April 16, 2026 · updated April 18

Programmatic SEO (pSEO) is the art of transforming a large database into SEO-friendly pages. Airbnb's "2 bedroom 1 bathroom homes in New York" pages, Tripadvisor's "restaurants open on Sunday in Istanbul" pages — all pSEO.

On doktorbul.com, we applied this technique to the Turkish market. 79,000 doctors + 15,000 city × specialty combinations = ~94,000 automatically generated landing pages. In this post, I'll explain how we did it.

1. Data: clean structure is essential

The first step is data cleaning. For pSEO to work:

  • At least 8 fields per doctor: first name, last name, title, specialty, subspecialty, city, district, hospital
  • 3-5 subspecialties per specialty
  • Neighborhoods for each city
  • Location + phone for each hospital

We pulled and merged data from 5 different sources (SHS, provincial health directorates, Google Maps API). Initial cleaning took 3 weeks — spelling variations, missing information, duplicates.

2. URL structure: careful design

URLs are the backbone of SEO. If you get them wrong, you break everything.

Bad example:

/doctor?id=12345&city=izmir

Good example (ours):

/dr-mehmet-yilmaz-kardiyoloji-izmir
/doktorlar/hastalik-kalp-yetmezligi/sehir-izmir/sayfa-1
/doktorlar/uzmanlik-kardiyoloji/sehir-izmir/sayfa-1

Rules:

  • Every URL must be readable
  • Trailing slash consistent (always present or always absent)
  • Language character conversion (ı→i, ü→u, ş→s, etc.)
  • No uppercase
  • URLs should never change (unless redirected)

3. Template: DRY but not generic

The biggest trap: all pages having the same template. Google perceives this as "low-value content."

Solution: dynamic variation within the template.

On each doctor page:

  • Required sections: name, specialty, hospital, location, contact
  • Dynamic sections:
  • - If the doctor has a specialty → "Dr. X's area of expertise..." paragraph - If the hospital has a known feature → "X Hospital is Turkey's first..." - Location feature → "In Izmir's Alsancak neighborhood..."

  • FAQ section: Claude generates 5 specialty-specific questions for each doctor

Result: each page is 40% common template, 60% unique content.

4. Schema.org markup: Person + MedicalOrganization for every page

{
 "@context": "https://schema.org",
 "@type": "Physician",
 "name": "Dr. Mehmet Yılmaz",
 "medicalSpecialty": "Cardiology",
 "worksFor": {
 "@type": "Hospital",
 "name": "İzmir Üniversitesi Tıp Fakültesi Hastanesi"
 },
 "address": { "@type": "PostalAddress", "addressLocality": "İzmir" },
 "availableService": [...]
}

Every page was validated in Google Rich Results Test for Schema.org.

5. Sitemap: how to submit 94,000 URLs?

Google has a 50,000 URL limit per sitemap. So we need 2 sitemaps.

Approach:

  • sitemap.xml → index sitemap (redirects to sub-sitemaps)
  • sitemap-doctors-1.xml → 0-50,000 doctors
  • sitemap-doctors-2.xml → 50,001-79,000 doctors
  • sitemap-diseases.xml → disease landing pages
  • sitemap-specialties.xml → specialty landing pages

Each sitemap has a dynamic lastmod date — when doctor information is updated, the date refreshes. Google recrawls that page.

6. Internal linking: preventing page isolation

For a URL to reach Google, it needs links from other pages. How do you link to 94,000 pages?

Our system:

  • Next to each doctor page: "Other doctors in the same specialty" + "Doctors in the same city" blocks
  • Disease pages link to doctor pages
  • City pages (e.g., /izmir-doktorlar) link to all Izmir doctors

Math: each doctor page receives an average of 15-20 internal links. No page is isolated.

7. Indexing: be patient

Google doesn't index 94,000 new URLs in a week. Our process:

  • Month 1: 5,000 pages indexed
  • Month 3: 35,000 pages indexed
  • Month 6: 72,000 pages indexed
  • Month 12: 89,000+ pages indexed

Patience + sitemap submission + manual index requests via "Inspect URL" in GSC for some pages. Low-authority pages can take 6+ months.

8. Results

After the first year:

  • Organic traffic: 20K/month → 450K/month
  • Indexed pages: 0 → 89,000
  • Average position (Turkey): 12
  • Long-tail clicks: 82% of total clicks
  • Bounce rate: 61% (good for niche sector)

Applying to your own site

Programmatic SEO isn't suitable for every site. It works best when:

  • You have a large database (1000+ records)
  • Each record offers unique value
  • Users are searching for specific information

If it fits your case, we can do a 30-minute potential assessment. Message me.

ABOUT THE AUTHOR
Miraç Eroğlu

Hacettepe mezunu, 6 yıldır sosyal medya, 2 yıldır AI otomasyon.

Learn more →

Want to apply one of the techniques from this post? Fill out a short form and we'll email you a free preview audit within 48 hours.