Skip to main content
Back to blog

SEO Gawain Hakbang 7: Seguridad — Ang Batayang Inaasahan ng Google sa 2026

·14 min read·by LANGR SEO

SEO Gawain Hakbang 7: Seguridad

Ito ang Hakbang 7 ng 13-Hakbang na SEO Guide. Ang seguridad ay hindi lamang tungkol sa pagprotekta sa mga gumagamit — direkta itong nakakaapekto sa iyong ranggo sa paghahanap. Gumagamit ang Google ng HTTPS bilang signal ng ranggo mula pa noong 2014, at ang mga inaasahan ay patuloy na tumataas.


Karamihan sa mga may-ari ng site ay iniisip ang seguridad bilang isang binary: "Mayroon tayong SSL, kaya ligtas tayo." Sa katotohanan, ang Google ay sumusuri ng maraming signal ng seguridad. Ang mga site na may wastong security headers, wastong mga sertipiko, at walang mixed content ay umuusad sa ranggo kumpara sa mga site na may basic SSL certificate lamang — kung lahat ay pantay.

Ang magandang balita: karamihan sa mga pag-aayos ng seguridad ay isang beses na konfigurasyon. I-set up ito minsan, at mapoprotektahan nito ang iyong ranggo nang permanente.

SSL Configuration

SSL (sa teknikal na TLS) ay nag-eencrypt ng koneksyon sa pagitan ng iyong server at ng mga bisita. Mula noong 2014, malinaw na kinilala ng Google ang HTTPS bilang isang signal ng ranggo. Sa 2026, ang kawalan ng HTTPS ay hindi lamang isang isyu sa ranggo — itinuturing ng Chrome na "Not Secure" ang mga HTTP site sa address bar, sinisira ang tiwala ng gumagamit.

Mga kinakailangan para sa wastong SSL:

| Kinakailangan | Bakit | Paano Suriin | |---------------|-------|--------------| | Wastong sertipiko | Kung nag-expire = babala sa browser = mga gumagamit na bumabagsak | Suriin ang petsa ng pag-expire | | Buong chain | Ang mga hindi kumpletong chain ay bumabagsak sa ilang device | SSL Labs test | | TLS 1.2+ | Ang mga mas matandang bersyon ay may kilalang kahinaan | SSL Labs test | | Walang SHA-1 | Nawala na, tinatanggihan ng mga browser | Mga detalye ng sertipiko | | SAN coverage | Dapat parehong ma-cover ang www at non-www | Mga detalye ng sertipiko | | Auto-renewal | Nagpapalayo ng mga disgrasya sa pag-expire | Let's Encrypt / provider config |

SSL scoring:

100% = Wastong sertipiko + Buong chain + TLS 1.3 + Malakas na cipher + Auto-renew
  0% = Nag-expire o nawawalang sertipiko

Mga karaniwang pagkakamali sa SSL:

  1. Nag-expire ang sertipiko nang walang babala — Mag-set up ng monitoring (Hakbang 6) hindi bababa sa 30 araw bago mag-expire
  2. Hindi kumpletong sertipiko chain — Kailangang magpadala ng server ng intermediate certificates, hindi lamang ang leaf
  3. Mixed content — Naglo-load ang HTTPS page ng HTTP resources (mga larawan, scripts, stylesheets)
  4. Redirect loops — HTTP → HTTPS → HTTP cycles na dulot ng maling pagkaka-configure ng CDN/proxy
  5. Non-www vs www mismatch — Sinasaklaw ng sertipiko ang isa ngunit hindi ang isa

Quick win: Patakbuhin ang iyong domain sa SSL Labs (ssllabs.com/ssltest). Anumang rating na mas mababa sa "A" ay may mga isyung maaaring ayusin. Karamihan sa mga hosting provider ay tumutulong dito sa isang click lamang.

Security Headers

Ang mga security headers ay HTTP response headers na nagtuturo sa mga browser kung paano umaksyon kapag naglo-load ng iyong site. Pinipigilan nila ang buong mga kategorya ng atake — at sinusuri ang mga crawler ng Google ang mga ito.

Ang mga pangunahing security headers:

Content-Security-Policy (CSP)

Ang CSP ay ang pinakamakapangyarihang security header. Ipinapahayag nito sa mga browser kung aling mga resources (scripts, styles, images, fonts) ang pinapayagan na mag-load sa iyong mga pahina.

Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://api.example.com; frame-ancestors 'none';

Ano ang pinipigilan ng CSP:

  • Cross-site scripting (XSS) attacks
  • Data injection attacks
  • Clickjacking (sa pamamagitan ng frame-ancestors)
  • Unauthorized script execution (cryptominers, ad injectors)

Diskarte sa deployment ng CSP:

  1. Simulan sa Content-Security-Policy-Report-Only (nag-log ng mga paglabag nang walang pag-block)
  2. Subaybayan ang mga ulat ng 1-2 linggo
  3. I-whitelist ang mga lehitimong mapagkukunan
  4. Lumipat sa enforcing mode
  5. Magdagdag ng report-uri o report-to para sa patuloy na pag-log ng paglabag

X-Frame-Options

Pinipigilan ang iyong site mula sa pag-embed sa iframes sa ibang mga domain (protekta laban sa clickjacking).

X-Frame-Options: DENY

O kung kailangan mong payagan ang same-origin framing:

X-Frame-Options: SAMEORIGIN

X-Content-Type-Options

Pinipigilan ang mga browser mula sa MIME-type sniffing (pag-interpret ng mga file bilang ibang uri kaysa sa dineklara).

X-Content-Type-Options: nosniff

Ang one-liner na ito ay pumipigil sa mga atake kung saan ang isang .jpg file ay naglalaman ng nakatagong JavaScript na maaaring isagawa ng browser.

Referrer-Policy

Kontrolin kung gaano karaming impormasyon ng referer ang ipinapadala kapag ang mga gumagamit ay nag-click ng mga link mula sa iyong site.

Referrer-Policy: strict-origin-when-cross-origin

Ipinapadala nito ang buong URL para sa same-origin requests ngunit tanging ang origin (domain) para sa cross-origin requests. Nagbabalanse ito ng mga pangangailangan sa analytics sa privacy.

Permissions-Policy

Kontrolin kung aling mga tampok ng browser (camera, microphone, geolocation, atbp.) ang maaaring gamitin sa iyong site.

Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()

Ang pag-disable ng mga tampok na hindi mo ginagamit ay pumipigil sa mga third-party scripts na abusuhin ang mga ito.

Halimbawa ng implementasyon ng header (Next.js):

// next.config.js
module.exports = {
  async headers() {
    return [{
      source: '/(.*)',
      headers: [
        { key: 'X-Content-Type-Options', value: 'nosniff' },
        { key: 'X-Frame-Options', value: 'SAMEORIGIN' },
        { key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' },
        { key: 'Permissions-Policy', value: 'camera=(), microphone=(), geolocation=()' },
        { key: 'Strict-Transport-Security', value: 'max-age=31536000; includeSubDomains; preload' },
      ]
    }]
  }
}

Implementasyon ng header (Apache .htaccess):

Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Implementasyon ng header (Nginx):

add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Quick win: Idagdag ang lahat ng 5 headers sa itaas sa iyong configuration ng server. Ito ay tumatagal ng 5 minuto at agad na nagpapabuti sa iyong seguridad sa anumang tool ng scan.

HSTS Preload

Ang HTTP Strict Transport Security (HSTS) ay nagsasabi sa mga browser na laging gumamit ng HTTPS para sa iyong domain — kahit bago ang unang request. Kung walang HSTS, ang unang pagbisita sa iyong site ay maaaring gumamit pa rin ng HTTP (vulnerable sa interception) bago mangyari ang redirect sa HTTPS.

HSTS header:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Ang tatlong direktiba:

| Direktiba | Kahulugan | |-----------|-----------| | max-age=31536000 | Tandaan ito sa loob ng 1 taon (sa segundo) | | includeSubDomains | Mag-apply din sa lahat ng subdomains | | preload | Hilingin ang pagsasama sa mga preload list ng browser |

HSTS preload list:

Ang pinakamataas na proteksyon para sa HSTS. Ang mga browser ay may kasamang nakabuilt-in na listahan ng mga domain na dapat laging gumamit ng HTTPS. Ang pagsusumite ng iyong domain sa hstspreload.org ay nangangahulugan:

  • Ang mga bisita sa unang pagkakataon ay makakakuha ng HTTPS kaagad (walang HTTP → HTTPS redirect)
  • Imposible para sa mga attacker na ibaba ang mga koneksyon
  • Permanenteng (mahirap tanggalin kapag naisumite na)

Mga kinakailangan para sa HSTS preload:

  1. Wastong HTTPS sertipiko
  2. I-redirect ang lahat ng HTTP sa HTTPS (kabilang ang mga subdomain)
  3. HSTS header na may max-age >= 31536000
  4. HSTS header na may kasamang includeSubDomains
  5. HSTS header na may kasamang preload
  6. Lahat ng subdomain ay dapat sumuporta sa HTTPS

Babala: Isumite lamang sa preload kung ANG LAHAT ng iyong subdomains ay sumusuporta sa HTTPS. Ang direktibang includeSubDomains ay nangangahulugang anumang HTTP-only na subdomain ay magiging hindi maa-access.

Quick win: Kung mayroon ka nang HTTPS sa lahat ng subdomains, idagdag ang buong HSTS header at isumite sa hstspreload.org. Ang processing ay tumatagal ng ilang linggo ngunit ang proteksyon ay permanente.

Vulnerability Scanning

Ang automated vulnerability scanning ay tumutukoy sa mga kilalang isyu sa seguridad sa iyong stack bago pa ma-exploit ng mga attacker.

Ano ang sinisiyasat ng vulnerability scanning:

  • Outdated software: WordPress, plugins, JavaScript libraries na may kilalang CVEs
  • Exposed files: .env, .git, wp-config.php, mga dumps ng database
  • Information leakage: Server version headers, debug mode, stack traces
  • Default credentials: Mga pahina ng admin na walang auth, mga default na password
  • Open ports/services: Mga hindi kinakailangang serbisyo na nakabukas sa internet
  • Injection points: Mga form na walang CSRF protection, unvalidated inputs

Karaniwang kahinaan ayon sa platform:

| Platform | Nangungunang Kahinaan | Ayusin | |----------|-----------------------|--------| | WordPress | Outdated plugins | Auto-update + WAF | | Shopify | Permissions ng third-party app | Audit ng app list quarterly | | Next.js | Exposed API routes | Auth middleware + rate limiting | | Static sites | CDN misconfiguration | Suriin ang cache rules | | Custom | SQL injection | Parameterized queries |

Dalas ng pagsusuri:

  • Araw-araw: Automated surface scan (SSL, headers, exposed files)
  • Tiyempo: Pag-check ng dependency vulnerability (npm audit, WordPress plugin scanner)
  • Buwan-buwan: Deep scan na may authenticated testing
  • Matapos ang bawat deploy: Regression check

Quick win: Patakbuhin ang npm audit (Node.js) o suriin ang iyong CMS plugin list para sa mga outdated na components. Ayusin ang mga critical/high severity issues kaagad.

Mixed Content

Ang mixed content ay nangyayari kapag ang isang HTTPS page ay naglo-load ng resources (mga larawan, scripts, stylesheets, iframes) sa pamamagitan ng HTTP. Ito ay bahagyang sumisira ng encryption at nag-trigger ng mga babala sa browser.

Mga uri ng mixed content:

| Uri | Severity | Halimbawa | Behavior ng Browser | |-----|----------|-----------|---------------------| | Aktibo | Mataas | HTTP script, iframe, CSS | Nakatakdang harangan | | Passive | Katamtaman | HTTP image, video, audio | Nag-load na may babala |

Ang aktibong mixed content ay nahaharangan ng modernong browsers — ibig sabihin, ang iyong mga scripts at styles ay hindi maglo-load. Ang passive mixed content ay naglo-load ngunit nagpapakita ng mga babalang pang-seguridad.

Pagsusuri ng mixed content:

  1. Buksan ang Chrome DevTools → Console
  2. Hanapin ang "Mixed Content" warnings
  3. Bilang alternatibo, i-scan gamit ang isang crawler (Screaming Frog, LANGR)

Mga karaniwang pinagmumulan ng mixed content:

  • Hardcoded na http:// URLs sa content (mga blog post, paglalarawan ng produkto)
  • Third-party widgets na naglo-load ng HTTP resources
  • Nakabembed na content (mga luma na YouTube embeds, social media widgets)
  • CSS background-image na may HTTP URLs
  • Mga font na naglo-load sa HTTP

Pag-aayos ng mixed content:

<!-- Masama -->
<img src="http://example.com/image.jpg" />

<!-- Mabuti -->
<img src="https://example.com/image.jpg" />

<!-- Pinakamainam (protocol-relative, umaangkop sa protocol ng pahina) -->
<img src="//example.com/image.jpg" />

Database fix (WordPress):

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://yourdomain.com', 'https://yourdomain.com');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://yourdomain.com', 'https://yourdomain.com');

Quick win: Buksan ang iyong homepage sa Chrome, pindutin ang F12, suriin ang Console tab para sa mixed content warnings. Ayusin ang anumang lumabas — ito ay malinaw na nakikita ng Google.

Third-Party Script Risks

Bawat external script na iyong ina-load ay isang potensyal na panganib sa seguridad (at performance). Ang mga third-party scripts ay maaaring:

  • Ma-compromise (supply chain attacks)
  • Subaybayan ang iyong mga gumagamit nang walang pahintulot (paglabag sa GDPR)
  • Pabagsakin ang iyong site (render-blocking, latency sa network)
  • Masira ang functionality (mga update ng bersyon, outages)
  • Mag-inject ng hindi gustong content (ad scripts na mali)

Audit ng iyong mga third-party scripts:

| Script | Kinakailangan? | Antas ng Panganib | Alternatibo | |--------|---------------|-------------------|-------------| | Google Analytics | Kadalasan oo | Mababa | Server-side tracking | | Chat widgets | Maaaring oo | Katamtaman | Self-hosted solutions | | Social share buttons | Bihira | Katamtaman | Static share links | | A/B testing | Minsan | Mataas | Server-side testing | | Retargeting pixels | Desisyon ng negosyo | Mataas | Data mula sa unang partido | | Font CDNs | Maginhawa | Mababa | Self-host na mga font |

Mitigasyon ng panganib para sa mga kinakailangang third-party scripts:

  1. Subresource Integrity (SRI): Ang hash verification ay pumipigil sa mga tampered na scripts mula sa pag-load
<script src="https://cdn.example.com/lib.js"
        integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxAE+sO0..."
        crossorigin="anonymous"></script>
  1. CSP restrictions: Payagan lamang ang mga scripts mula sa mga kilalang domain
  2. Sandboxed iframes: I-isolate ang mga third-party widgets
  3. Regular audits: Quarterly na pagsusuri ng lahat ng external na mapagkukunan
  4. Monitoring: Magbigay ng alerto sa mga bagong external domains na lumalabas sa iyong mga pahina

Quick win: Ilista ang bawat