วิธีทำ SEO ให้อันดับข้อมูลเด่นสุดเมื่อเทียบกับคู่แข่ง (ตั๋วเครื่องบิน)
Tags: python, thai, analyst, pip
Published: 2024-04-13 16:54:40

การวิเคราะห์ SEO ให้อันดับข้อมูลเด่นสุดเมื่อเทียบกับคู่แข่งนั้น สามารถให้ข้อมูลเชิงลึกด้านประสิทธิภาพในการค้นหาของสิ่งของคุณเปรียบเทียบกับคู่แข่ง กระบวนการนี้ก็ยังเปิดเผยแหล่งที่มาของการเข้าชมของคู่แข่งของคุณอีกด้วย นอกจากนี้ ก็ยังช่วยให้คุณกำหนดกลยุทธ์และลำดับความสำคัญของ SEO ของคุณเช่นกัน หากยังมีเวลาพอให้ทำในบางกรณี

## ผลลัพธ์จากการใช้ฮีทแมปของ SERP - ตั๋วเครื่องบิน 
ตรงนี้จะเป็นด้านผลที่ได้รับจากการใช้ความพยายามสักนิดในการเขียนเล่นกับโค้ด Python ปะมาณสองสามบรรทัด

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/86ltihcyr48fu3yubnnx.png)

## มาเริ่มกันเลย
ในบทความนี้ ผมจะทำการอธิบายว่าคุณจะสามารถหาผลประโยชน์อะไรได้บ้างจากการใช้ไลบรารี Python [Advertools](https://pypi.org/project/advertools/) (โดย [Elias Dabbas](https://www.linkedin.com/in/eliasdabbas/)) ในการปรับปรุงความสามารถในการวิเคราะห์เชิงและวิชวลไลซ์กระบวนการแข่งขันของคุณได้อย่างไร นอกจากนี้ คุณจะได้รับรางวัลจากการใช้ฮีทแมป SERP แบบโต้ตอบได้ ที่จะทำการแสดงสิ่งที่ถูกครอบคลุมต่างๆให้เห็น รวมทั้งลักษณะและอันดับโดยเฉลี่ยของคู่แข่งที่คุณต้องการศึกษา เรามาเริ่มเซ็ตสภาพแวดล้อมกันเลยดีกว่า 

## วิธีการติดตั้ง Jupyter Lab
สำหรับบทเรียนนี้ ผมจะเน้นไปด้านการตั้งค่าสภาพต่างๆให้เหมาะสมในการนำมาใช้กับ `OSX` โดยที่ผมจะเป็นคนเลือกสภาพแวดล้อมและพื้นที่ทำงานของ Jupyter Lab มาใช้ คุณสามารถข้ามขั้นตอนนี้ แล้วตรงไปที่ส่วนการเขียนโค้ดไปได้เลย หากว่าคุณคุ้นเคยกับ [Google Colab](https://colab.research.google.com/) อยู่แล้ว

มาเริ่มต้นด้วยการติดตั้งแบบง่ายๆลงบน `Terminal` ของคุณ ตอนนี้แค่ไปที่ `Applications > Utilities` แล้วมองหา [Terminal.app](https://support.apple.com/guide/terminal/welcome/mac) ให้เปิด `Terminal` แล้วเพิ่มตอมมานง่ายๆนี้ลงไปเพื่อเริ่มการติดตั้ง

```
brew install jupyterlab
```
หากคุณใช้ Linux เป็นโอเอส คุณก็สามารถใช้คำสั่งเดิมนี้ หรือจะลองวิธีอื่นในการติดตั้ง Jupyter Lab บนแพลตฟอร์มที่คุณต้องการตามที่มีไว้ให้ใน[หน้าเพจการติดตั้ง](https://jupyter.org/install)หลัก

## จะเริ่มใช้ Jupyter Lab ยังไง
ทั้งหมดนี้คือทุกสิ่งที่จำเป็นได้รับการติดตั้งลงบนระบบของคุณ ตอนนี้เหลือแค่ป้อนคำสั่งนี้ลงใน `Terminal`

```
jupyter lab
```
ในเบราว์เซอร์เริ่มต้นของคุณจะมีการเปิดแท็บที่มี `http://localhost:8888`

## มาเริ่มเขียนโค้ดกันเลย
ไปที่ `File > New > Notebook` จะมีแท็บใหม่เปิดขึ้นมาให้สำหรับคุณ สิ่งแรกที่คุณต้องทำคือติดตั้งไลบรารีก่อนในการที่จะเล่นกับตัวแปรที่จำเป็น

**การติดตั้งไลบรารี**
ไลบรารีเหล่านี้จะถูกติดตั้งไว้ใน `Jupiter Lab` โดยจะมีความแตกต่างเล็กน้อยหากเทียบกับเหล่าคำสั่ง `Terminal` มาตรฐานทั่วไป โดยคุณต้องเอ็นเทอร์ก่อนคำสั่ง `!` (เครื่องหมายอัศเจรีย์)

```
!pip install advertools
!pip install adviz
```
ในหน้า `Jupiter Lab` ของคุณจะมีลักษณะเช่นนี้ หากต้องการเรียกใช้คำสั่ง คุณจะต้องกำลังเปิดหน้าฟิลด์ที่กำลังใช้งานที่มีโค้ดของคุณอยู่ แล้วกด `Shift + Enter`

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/940fv9xjj48m7mym9ea1.png)

หากต้องการป้อนโค้ดต่อไป คุณต้องกดที่ไอคอน `+` ตรงด้านบนซะก่อน เพื่อเพิ่มช่องว่างใหม่สำหรับป้อนซินแท็กซ์โค้ดอันใหม่

**การอิมพอร์ทนำเข้าแพ็คเกจ**
อะไรที่ติดตั้งไปแล้วจะต้องผ่านการอิมพอร์ทนำเข้ามาซะก่อนถึงจะใช้ได้ ดังนั้นเราจะทำการนำเข้า `pandas`, `advertools`, `adviz` และ `plotly` เข้าสู่ช่องใหม่ของโค้ดนี้

```
import pandas as pd
import advertools as adv
import adviz
import plotly.express as px
```

**การตั้งค่าเครื่องมือค้นหาเซิร์จเอนจิ้นและคีย์ API โดยเฉพาะ**
คุณจะต้องทำการตั้งค่า ID ของเครื่องเซิร์จเอ็นจิ้นโดยเฉพาะนี้ซะก่อน (ตรงโค้ด cx) เพื่อทำการคิวรี่เซิร์จเอ็นจิ้นที่คุณต้องการผ่าน API จากนั้นค่อยตามด้วยรายการคีย์เวิร์ดที่คุณต้องการรับผลลัพธ์มาดูหลังจากที่ทำไปแล้ว ไปที่ [Programmable search engine](https://programmablesearchengine.google.com/controlpanel/create) homepageเพื่อดูว่าจะ `ค้นหาอะไร?` เลือก `○ ค้นหาทั้งเว็บ` ใน`การตั้งค่าการค้นหา` เลือก `○ ค้นหารูปภาพ` และ `○ การค้นหาแบบปลอดภัย` กดติ๊กเครื่องหมาย `reCAPTCHA` แล้วกด`สร้าง`

จากสคริปต์ทั้งหมดนี้ คุณแค่คัดลอกเฉพาะส่วนหลัง `cx=` นี้ก็พอ

```
<script async src="https://cse.google.com/cse.js?cx=YOUR-SEARCH-ENGINE-ID">
</script>
<div class="gcse-search"></div>
```

หากต้องการให้มี API ในการค้นหาโดยเฉพาะ ให้ไปที่[ตรงนี้](https://developers.google.com/custom-search/v1/overview#api_key)แล้วกด `Get a Key` โค้ดที่คุณได้คัดลอกไปนั้นจะอ้างอิงถึง `key` ในสคริปต์ สิ่งที่จะถูกส่งไปยังฟิลด์ `Jupyter lab` ก็คือโค้ดสุดท้ายอันนี้

```
cx = "YOUR-SEARCH-ENGINE-ID"
key = "YOUR-CUSTOM-SEARCH-API-KEY"
```

**เช็คคีย์เวิร์ดด้วยการใช้ API**
ในส่วนนี้ เราจะทำการคิวรี่ API ผ่านการใช้ `Advertools` เป็น `adv` โดยใช้ `serp_goog` เป็นตัวช่วย ผมจะสร้างตัวแปร `dataz` ไว้จัดเก็บผลลัพธ์ โดยคุณสามารถตั้งชื่อตัวแปรนั้นยังไงก็ได้ โดยค่า `gl=["th”]` จะเป็นตัวกำหนดค่าใน `Google` ที่คุณต้องการค้นหา ซึ่งในกรณีนี้ก็คือ `Google.co.th` ในส่วนโค้ดสุดท้ายของคุณนี้ ถ้าอยากคุณจะเพิ่มคีย์เวิร์ดเพิ่มเติมเข้าไปอีกก็ได้ โดยวัตถุประสงค์ของโค้ดนี้ ผมได้เลือกเพียงแค่บางส่วนเท่านั้น ถ้าคุณอยากที่จะทดลองอะไรเพิ่มเติมก็ตามแต่

```
dataz = adv.serp_goog(cx=cx,
                       key=key,
                       gl=["th"],
                       q=["จอง ตั๋ว เครื่องบิน",
                          "จอง ตั๋ว เครือ ง บิน",
                          "ตั๋ว เครื่อง บิน",
                          "จองตั๋ว",
                          "จองตั๋วล่วงหน้า",
                          "จองตั๋วออนไลน์",
                          "จอง ตั๋ว เครื่อง เครื่องบิน",
                          "ตั๋ว ถูก",
                          "ตั๋วเครื่องบิราคถูก",
                         ])
```

เมื่อคุณเรียกใช้ฟิลด์นี้ด้วย `Shift + Enter` กระบวนการคิวรี่ก็จะเริ่มขึ้น คุณแค่รอก็พอ

> หากอยากจะรู้ว่าคุณสามารถตั้งค่าอะไรอีกบ้างในการใช้ `serp_goog` ให้ป้อนช่องว่างของ Jupyter Lab `adv.serp_goog?` (ที่มี ? เครื่องหมายคำถาม)

**วาดแผนที่ฮีทแมปโดยใช้ SERP**
ส่วนโค้ดตรงนี้จะตรงๆไปเลย จะให้มันเยอะกว่านี้ก็ได้ คุณก็สามารถแก้ไขผ่าน `fig` ค่าเกือบทั้งหมดที่คุณจะเห็นจะเป็นฮีทแมป `SERP` แต่สำหรับกรณีนี้ ผมจะทำให้มันง่ายที่สุดเท่าที่จะทำได้ หากเราใช้ `fig.layout.title` เราก็จะสามารถทำการกำหนดชื่อของแผนที่ฮีทแมปได้ ผมตั้งชื่อตัวแปรนี้ว่า dataz ผ่าน `serp_heatmap` ที่ตรงนี้ เราจะทำการกำหนดผลลัพธ์จำนวนหนึ่งให้เป็น `num_domains` (จำนวนโดเมน) ทั้งหมดนี้ คือสิ่งที่เราต้องตั้งค่าเพื่อสร้างฮีทแมปของ SERP

```
adviz.serp_heatmap(dataz,
                   num_domains=10)
fig = adviz.serp_heatmap(dataz)
fig.layout.title = "ผลลัพธ์จากการใช้ฮีทแมปของ SERP - ตั๋วเครื่องบิน"
fig
```

## ผลลัพธที่โต้ตอบได้แบบฮีทแมป SERP - ตั๋วเครื่องบิน
ตามที่แสดงไว้ตรงข้างต้น ตอนนี้คุณควรจะเห็นผลลัพธ์ที่เป็นแบบฮีทแมป SERP ในฟิลด์ใหม่ของ Jupyter Lab ได้แล้ว โดยมันจะเป็นแบบอินเตอร์แรคทีฟคือสามารถโต้ตอบได้อย่างสมบูรณ์ เพราะงั้น คุณจะสามารถวางเมาส์เหนือวงกลมเพื่อดูว่าคีย์เวิร์ดใดในตำแหน่งใดที่ถูกเรียกใช้ในแต่ละโดเมน ดังที่แสดงใน[แผนที่ฮีทแมป SERP แบบโต้ตอบได้](https://kukucka.work/serp-competition-analysis-airline-tickets-thailand-2024/)อันนี้

**ผลลัพธ์ที่ไม่เสถียรในฮีทแมป SERP**
ผลลัพธ์อาจแตกต่างกันไปขึ้นกับวันที่คุณทำการวิเคราะห์ เนื่องจากเว็บไซต์ส่วนใหญ่ผลิตเนื้อหาและอัลกอริทึมของ Google สะท้อนถึงการเปลี่ยนแปลง และคำนวณความครอบคลุมและตำแหน่งใหม่สำหรับแต่ละโดเมน/เว็บไซต์ต่างๆที่เกิดขึ้น (เว็บไซต์ข่าวอัปเดตบ่อยที่สุด) แทบจะทันที

ยกตัวอย่างเช่น ก่อนเทศกาลวันหยุด วันตรุษจีน หรือวันหยุดประจำชาติไทยอื่นๆ สามารถทำให้การจัดอันดับเว็บไซต์บางแห่งดีขึ้นมาอย่างแปลกหูแปลกตาก็ได้ เพราะเว็บนั้นอาจมีข้อเสนอโปรโมชั่นที่เกี่ยวข้องกับ (จุดหมายปลายทาง) พิเศษให้ เลยทำให้เครื่องมือค้นหาจะดำเนินการโดยรวมผลพิเศษนี้ไปด้วย

**วิธีปรับเปลี่ยนผลลัพธ์ของฮีทแมป SERP ให้เป็นไปตามตามโดเมนระดับบนสุด**
หากคุณต้องการจำกัดผลลัพธ์ในฮีทแมป SERP ให้มันแคบลงเหลือแค่เฉพาะโดเมนจากประเทศใดประเทศหนึ่งเท่านั้น หรือจะพูดว่าอยากจำกัดแค่ผลการค้นหาเฉพาะจากเอกสารที่มาจากประเทศใดประเทศหนึ่ง คุณอาจใช้ตัวดำเนินการบูลีนในค่าของพารามิเตอร์ `cr` โดยโค้ดทั้งหมดนี่มีไว้เพื่อจำกัดโดเมนที่มาจากประเทศไทยเท่านั้น คือ `cr=["countryTH"]` (วางไว้ตรงโค้ดที่คุณระบุว่าเป็นคีย์หลัก) จากนั้น Google Search จะทำการกำหนดประเทศของเอกสารโดยการวิเคราะห์โดเมนด้านบนสุด (TLD) จาก URL ของเอกสาร และตำแหน่งทางภูมิศาสตร์ของที่อยู่ IP ของเว็บเซิร์ฟเวอร์

ขอขอบคุณ San สำหรับงานแปลบทความนี้ และ [Goh Rhy Yan](https://unsplash.com/@gohrhyyan?utm_source=unsplash&utm_medium=referral&utm_content=CreditCopyTextGratitude) สำหรับภาพปกจาก Unsplash