สมมติว่าคุณต้องย้ายจากหน้าหนึ่งไปอีกหน้าหนึ่ง มีหลายวิธีดังนี้ คุณสามารถอธิบายได้อย่างชัดเจนว่าทำไม?
<%--รูปแบบตัวแทนของลิงก์--%>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Default2.aspx">ไฮเปอร์ลิงก์</asp:HyperLink>
<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="~/Default2.aspx">LinkButton</asp:LinkButton>
<%--ด้วยเหตุผลด้านความสวยงาม เว็บไซต์จำนวนมากจะใช้ปุ่มเพื่อแทนที่ลิงก์--%>
<asp:ID ปุ่ม = "Button1" runat = "เซิร์ฟเวอร์" Text = "ปุ่ม" PostBackUrl = "~/Default2.aspx" />
<%--การใช้รูปภาพเป็นลิงก์ มีสองตัวเลือก--%>
<asp:ImageButton ID = "ImageButton1" runat = "เซิร์ฟเวอร์" PostBackUrl = "~/Default2.aspx" ImageUrl = "~/upup.gif" />
<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="~/Default2.aspx" ImageUrl="~/upup.gif"></asp:HyperLink>
หากคุณยังคงสับสนอยู่เล็กน้อย ฉันขอแนะนำให้คุณตรวจสอบซอร์สโค้ดหลังจากที่ซอร์สโค้ดสร้าง html แล้ว
<a id="HyperLink1" href="Default2.aspx">ไฮเปอร์ลิงก์</a>
<%--หลังจากแยกวิเคราะห์ไฮเปอร์ลิงก์เป็น Html แล้ว มันจะสอดคล้องกับไฮเปอร์ลิงก์ธรรมดา และ href ชี้ไปที่หน้าที่จะข้ามไป--%>
<a id="LinkButton1" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("LinkButton1", "", false, "", "Default2.aspx", false, true))">LinkButton< /ก>
<%--แม้ว่า LinkButton1 จะเป็นแท็กจุดยึด แต่จริงๆ แล้วใช้ JavaScript เพื่อข้าม--%>
<input type="submit" name="Button1" value="Button" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("Button1", "", false, "", "Default2.aspx" , เท็จ, เท็จ))" id="Button1" />
<%--ปุ่มถูกแยกวิเคราะห์เป็นองค์ประกอบอินพุตของ type="submit" และหน้าก็ถูกข้ามผ่าน JavaScript--%>
<input type="image" name="ImageButton1" id="ImageButton1" src="upup.gif" onclick="javascript:WebForm_DoPostBackWithOptions(ใหม่ WebForm_PostBackOptions("ImageButton1", "", false, "" , "Default2.aspx", false, false))" style="border-width:0px;" />
<%--ImageButton ถูกแยกวิเคราะห์เป็นองค์ประกอบอินพุตของ type="image" และหน้านั้นก็ถูกข้ามผ่าน JavaScript--%>
<a id="HyperLink2" href="Default2.aspx"><img src="upup.gif" style="border-width:0px; /></a>
<%--หลังจากกำหนดค่าให้กับแอตทริบิวต์ ImageUrl ของไฮเปอร์ลิงก์แล้ว หลังจากแยกวิเคราะห์เป็น Html แล้ว ค่านั้นจะสอดคล้องกับ img "ตัด" ในไฮเปอร์ลิงก์ แต่ href ยังคงชี้ไปที่หน้าที่จะถูกข้าม--%>
การรู้เรื่องนี้จะมีประโยชน์อะไร?
มีประโยชน์หลายอย่าง แต่วันนี้เราจะพูดถึงเฉพาะ SEO เท่านั้น
ด้วยเทคโนโลยีเครื่องมือค้นหาในปัจจุบัน JavaScript (รวมถึง AJAX ด้วย) องค์ประกอบของแบบฟอร์ม (เช่นอินพุต) Flash และรูปภาพไม่สามารถอ่านได้ (หรืออ่านยาก) "สไปเดอร์" มักจะอ่านข้อความในรูปแบบ html ธรรมดา ดังนั้นจากมุมมองของ SEO:
1. อย่าใช้ JavaScript หรือแบบฟอร์มสำหรับลิงก์ข้ามหน้า <a></a> ธรรมดาก็สามารถใช้ฟังก์ชันเดียวกันนี้ได้ โดยทั่วไปแล้ว การนำทางใดๆ ที่ไม่สามารถเข้าถึงได้ผ่านตัวระบุจุดยึดมาตรฐาน <a></a> จะไม่ถูกดึงข้อมูลโดยสไปเดอร์ หากเราใช้องค์ประกอบฝั่งไคลเอ็นต์ในตอนแรก มันควรจะง่ายกว่าสำหรับเราที่จะสังเกตเห็นสิ่งนี้ แต่เมื่อใช้การควบคุมฝั่งเซิร์ฟเวอร์แบบห่อหุ้ม เราอาจประมาทได้
2. โปรดทราบว่าไม่มีเนื้อหาข้อความใน UpdatePanel เราสามารถทำการทดสอบง่ายๆ:
<asp:ScriptManager ID="ScriptManager1" runat="เซิร์ฟเวอร์">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="เซิร์ฟเวอร์">
<เทมเพลตเนื้อหา>
<asp:Label runat="server" ID="lbl" ></asp:Label>
<asp:ID ของปุ่ม = "Button1" runat = "เซิร์ฟเวอร์" Text = "ปุ่ม" onclick = "Button1_Click" />
</เทมเพลตเนื้อหา>
</asp:UpdatePanel>
โมฆะที่ได้รับการป้องกัน Button1_Click (ผู้ส่งวัตถุ EventArgs e)
-
this.lbl.Text = "ฉันถูกสร้างขึ้นโดย UpdatePanel ดังนั้นคุณจึงไม่เห็นฉัน!";
-
ส่วนซอร์สโค้ดหลังจากแยกวิเคราะห์เป็น Html:
<div id="UpdatePanel1">
<span id="lbl"></span>
<ประเภทอินพุต = "ส่ง" ชื่อ = "Button1" value = "ปุ่ม" id = "ส่ง1" />
</div>
ซึ่งง่ายต่อการเข้าใจ เนื่องจาก UpdatePanel ยังสร้างเนื้อหาของเพจผ่านฟังก์ชัน JavaScript ของเพจอีกด้วย เมื่อดูซอร์สโค้ด เราจะเห็นฟังก์ชัน JavaScript ที่เกี่ยวข้อง แต่จะไม่เห็นเนื้อหาที่สร้างโดยฟังก์ชันดังกล่าว สำหรับสไปเดอร์ของเครื่องมือค้นหาจะดูเฉพาะซอร์สโค้ดเท่านั้น
3. เมื่อเราจำเป็นต้องใช้หน้าป๊อปอัป วิธีการปกติคือ:
<a href="#" onclick="window.open('popup.html','common','height=600,weight=800');">ป๊อปอัปทั่วไป</a>
จากสิ่งที่เราอธิบายข้างต้น วิธีการเขียนนี้ส่งผลเสียต่อ SEO อย่างไม่ต้องสงสัย ดังนั้นเราควรใช้โค้ดต่อไปนี้ ซึ่งจะทำให้แน่ใจถึงผลกระทบของหน้าต่างป๊อปอัปและเป็นมิตรกับ SEO และแม้ว่าเบราว์เซอร์ของลูกค้าจะไม่รองรับหรือปิดใช้งาน JavaScript หน้าเว็บก็ยังสามารถข้ามได้อย่างราบรื่น
<a href="popup.html" onclick="window.open(this.href,'seo','height=600,weight=800');return false;" target="_blank">seo ป๊อปอัป</a >
<%--หมายเหตุ: ไม่สามารถละเว้นคำสั่ง return false ที่นี่ได้ -
4. เมื่อเราต้องการใช้แบบอักษรพิเศษ (มักเป็นชื่อคอลัมน์และอื่นๆ ที่คล้ายกัน) เรามักจะใช้รูปภาพตัวอักษรจีนแทน นี่เป็นสิ่งที่ยุ่งยากเช่นกัน เนื่องจากในฐานะชื่อเรื่อง เนื้อหามักเป็นคำหลักที่สำคัญมาก หากคุณใช้รูปภาพ สไปเดอร์จะไม่สามารถอ่านมันได้ วิธีแก้ปัญหาหนึ่งที่เป็นไปได้คือ sIFR แต่ฉันไม่คุ้นเคยกับสิ่งนี้มากนัก หลังจากค้นหาทางออนไลน์ ดูเหมือนว่าจะใช้กับอักขระจีนไม่ได้
สำหรับรูปภาพ วิธี SEO ที่ใช้กันทั่วไปของเราคือการระบุชื่อและ Alt เช่น
<img alt="ASP.NET Search Engine Optimization" title="เทคนิค SEO บางอย่างที่ควรสังเกตเมื่อพัฒนาเว็บไซต์โดยใช้เทคโนโลยี ASP.NET" src="seo.gif" />
อย่างไรก็ตาม นี่เป็น "องค์ประกอบของหน้าที่มองไม่เห็น" เช่นกัน และผลกระทบเฉพาะเจาะจงนั้นวัดได้ยากอย่างแม่นยำ แต่มีบางอย่างดีกว่าไม่มีเลย!
5. หมายเหตุอื่นๆ:
5.1 รวมความหมายของแท็ก html เข้ากับ CSS ต่างจาก "span" และ "div" โดย "h1" หมายถึงชื่อ "b" หมายถึงการเน้น "ul" และ "li" หมายถึงรายการ... แท็กความหมายเหล่านี้สามารถค้นหาได้ คำแนะนำที่ชัดเจนของเครื่องยนต์
5.3 วางเนื้อหาที่สำคัญไว้ที่ด้านบนของหน้า html (อ้างอิงถึงซอร์สโค้ด ไม่ใช่ผลลัพธ์ที่แสดงโดยเบราว์เซอร์)
5.5 วาง JavaScript ส่วนใหญ่ไว้ที่ด้านล่างของหน้าหรือในไฟล์ js แยกกัน
5.2 เป็นการดีที่สุดที่จะไม่ใช้เค้าโครงเฟรม
5.3 VIEWSTATE จำนวนมากอาจทำให้เกิดการรบกวน "Spider";
5.5 โปรดทราบว่า: ด้วยเทคโนโลยีเครื่องมือค้นหาในปัจจุบัน JavaScript (รวมถึง AJAX ด้วย) องค์ประกอบของแบบฟอร์ม (เช่นอินพุต) Flash และ Image ไม่สามารถอ่านได้ (หรืออ่านยาก)