發表文章

台灣放假日與補班日查詢

資料規則: 若放假日(法定放假的節日)是在週六或週日的話則文字會淡一點。補班日也只顯示週六或週日的補班日(應該也沒有平日的補班日)。 取得今年資料

YouTube用市佔與SERP,讓其與SEO的關聯性越來越重

圖片
自從Google收購了YouTube以來,平台不斷地更新,這些更新不僅僅是為了改善Google的搜尋結果(SEO),也為了提升YouTube本身的功能與多樣性(數位行銷,像是與 Google Merchant Center 結合)。 且在2023年第一次在台灣舉辦的Google Search Central Live Taipei 2023中也暗示影片SEO將會越來越重要。(我當初看大家的心得都沒人寫這一點,是在藏招嗎?)你也可以從 Google SERP 發現,YouTube影片是相對容易出現的。 YouTube持續改進的策略 首先,不得不提YouTube在影片結構化資訊方面的強大功能。只要影片有正確的文字格式,YouTube能自動生成關鍵影格,這讓使用者能輕鬆瀏覽影片,快速找到重要的片段。對於內容創作者來說,這大大提升了影片的搜尋性與觀眾的互動性;對於技術SEO來說,有效減少作業時間,只要把東西丟到平台上就好,還能加上各國語言的字幕。 而直播聊天室的功能也越來越多,雖然效能的問題還是沒有解決,但確實是有在進步的。 YouTube幾年前開始學別的平台的「聊天室送禮功能」也能增加觀眾觀看直播的黏著度。 此外,YouTube Shorts的推出是對TikTok病毒式行銷的有力回應。YouTube不願讓短影片的市場被TikTok獨佔,YouTube利用廣告收入政策與曝光度讓Shorts成為創作者接觸更廣大觀眾的利器,讓YouTube在龐大的平台基礎上,成功融入短影片的潮流。 廣告格式的創新與應對Adblock的策略 在廣告方面,YouTube做了一系列變革,更新多種廣告的呈現方式與格式,同時也積極應對Adblock這類廣告攔截工具(讓Adblock使用者的載入時間大幅度提升)。這些變革不僅有效提高了廣告的曝光率,還讓廣告主更準確地觸及目標受眾與產品的直接連結,為YouTube帶來了可觀的廣告收益。 YouTube的社群功能強化 YouTube不僅限於影片下方的評論區與直播聊天室,也將 強化自身的「社群」 。這個功能讓創作者擁有自己的專屬空間,成為討論影片、分享粉絲創作、以及與志同道合的觀眾建立聯繫的中心。 More than just comments, Communities: Your very own corner of the in...

為了SEO,我需要在競爭對手的網站上分析哪些內容?

圖片
在評估競爭對手的 SEO 技術時,請記住,如果只專注於他們在做什麼對他們有用的事情,那麼您就會忘記建立更好和原創的東西。 搜尋引擎不需要「副本」 如果您試著依樣畫葫蘆做出類似的文本、設計元素、內部鏈接、架構並獲得相同的反向鏈接,那麼搜尋引擎就更沒有理由顯示您的網站。 為什麼?因為搜尋引擎不需要同一頁面的兩個版本。 如果您添加那些內容是因為競爭對手擁有這些內容,密切模仿他們的成功,那麼您實際上只是在承認他們擁有更好的內容、設計或體驗。 關注他們遺漏的內容或他們正在做哪些與搜尋意圖無關的事情,並始終追蹤他們和您自己的改動。 搜尋引擎只需要其網站的一個版本。如果你創造了更好的體驗,這可能意味著你脫離了那些相似的副本設計,你可能會在榜首位置擊敗它們。 網站架構 也許改善架構並不會讓你的SEO變好,但你可以觀查別人是如何運用架構來拓展自己的相關內容,讓網站更豐富。並試著分類並找到適合自己的架構去拓展內容: 產品頁面。 部落格文章。 登陸頁。 常見問題和資訊。 其它。 另外,你也可以從 menu、sitemap、robots.txt 查看他們優先考慮哪些資料夾和頁面,他們主打哪些關鍵字和主題,以及哪些對他們來說不重要。您可能會發現沒想到的新短語和關鍵字,以及建立您自己網站的更好方法。甚至可以為新的 PPC 活動提出想法。 專有名詞 另外,解釋人們已經知道的事情會浪費他們的時間。如果人們想要知道更多資訊,您絕對可以使用行話之外的內部連結指向專門的帖子,然後他們看完之後可以返回上一頁。這並不是讓使用者操作變麻煩,而是讓有需要的人再去觀看就可以的設計,而且這種方式「可以讓需要的使用者多看一頁」,更可以豐富你的網站內容。 請永遠要記得你的目標是讓使用者更深入了解你的網站,而不是讓他們看一頁就跑了。看的頁面越多,對你的業務感興趣的機率越大。 言下之意就是不要看到很酷炫的更多資訊跳出來,就跟風去一起用,並不是每個網站都適合。

各網頁會互相影響SEO

圖片
其實這件事大家心裡應該都有個底,但沒有百分之百的證據,而Google對於流量下降的解說有些許的更新,我們可以從中觀察出網站內的網頁是會互相影響的。 流量下降的解說更新 請記住,排名不是靜態的。Google的搜尋結果本質上是動態的,因為開放網路本身隨著新的和更新的內容而不斷變化。這種持續的變化可能會導致自然搜尋流量的增加或減少。 排名小幅下降 小幅下降是指頂部結果中的排名發生小幅變化(例如,排名從 2 下降到 4)。在 Google Search Console 中,可能會看到流量大幅下降,但曝光總數卻沒有大幅變動。 位置的小波動可能隨時發生(包括返回位置,而無需執行任何操作)。事實上,如果您的頁面已經表現良好,Google建議避免進行徹底的更改。 排名大幅下降 排名大幅下降是指您發現多種術語的排名前十的結果顯著下降(例如,排名從前 10 下降到第 29 位)。 在這種情況下,請對整個網站(而不僅僅是單一頁面)進行整體自我評估,以確保它有用、可靠且以人為本。如果您對網站進行了更改,則可能需要一段時間才能看到效果:某些更改可能會在幾天內生效,而另一些更改可能需要幾個月的時間。例如,Google的系統可能需要幾個月的時間才能確定某個網站現在正在產生長期有用的內容。一般來說,您可能需要等待幾週,再次在 Google Search Console 中分析您的網站,看看您的努力是否對排名位置產生了有益的影響。 請記住,Google無法保證您對網站所做的更改會對搜尋結果產生明顯影響。如果有更多高品質的內容,它的排名將會繼續在SERP中領先。 不實用內容的影響 再加上之前提到的,Google有在 實用內容和 Google 搜尋結果常見問題 中提到:移除不實用的內容,是否能提升我其他內容的排名? 我們的系統主要是在網頁層級運作,以便盡可能顯示最實用的內容,即使該內容所在網站同樣代管不實用的內容也不例外。話雖如此,要是網站中有特別多不實用的內容,可能會讓網站的其他內容在 Google 搜尋中的成效降低,但影響程度不一。移除不實用的內容,可能有助於提升其他網頁的成效。 結論就如同開頭所說的,網站內的網頁是會互相影響的。

10 steps、「ライブ会場を沸らせる、フロアを沸かす」ミーム動画の作り方 (Viggle AI)

圖片
日本近期流行的「ライブ会場を沸る」或是稱為「フロアを沸かす」的迷音AI短片,是怎麼製作生成的?下面我們用英文和影片帶你一步一步做,完全不用動腦。 (続いて英語でステップバイステップで説明します。操作手順動画も用意しているので、頭を使わずに簡単にできます。) 操作步驟 steps: Enter to Viggle AI's Discord server (https://discord.gg/viggle). Select any of these rooms named "animate" and click to enter. Type "/" to bring up a list of commands. Select "animate" from the list of commands. Upload your image. motion_prompt: type "$lil_yachty_stage_entrance". background: select "From template". finetune: select "On". Hit Enter or click on the submit button to send the command. Wait for approximately 1 to 5 minutes for the AI animation to be generated. 日本語操作手順: Viggle AIのDiscordサーバーに入る(https://discord.gg/viggle)。 任意の「animate」ルームを選択して、クリックして入る。 "/"を入力して、コマンドのリストを表示し、「animate」を選択します。 コマンドのリストから「animate」を選択します。 画像をアップロードします。 motion_prompt: "$lil_yachty_stage_entrance"を入力します。 background:「From...

用color-scheme和light-dark()寫出更彈性的dark mode

圖片
dark mode 的CSS寫法一直以來都不是很方便,在偵測使用者作業系統是不是dark mode的時候,我們可以用prefers-color-scheme來另外寫一套CSS。現在多了另一種寫法 light-dark() 。 prefers-color-scheme prefers-color-scheme寫法如下,當然還有很多東西要考慮,例如border、hightlight…等等,但為了方便說明,只用文字和背景顏色舉例。 :root { --text-color: #333; --background-color: #eee; } @media (prefers-color-scheme: dark) { :root { --text-color: #efefef; --background-color: #222; } } 新的語法 light-dark() light-dark()可以搭配color-scheme使用達到自動偵測使用者作業系統是不是dark mode: :root { color-scheme: light dark; --text-color: light-dark(#333, #efefef); --background-color: light-dark(#eee, #222); } 除此之外,還可以用input讓使用者自己選擇要不要用dark mode: :root { /* 偵測使用者作業系統 */ &:has(input[name="scheme"][value="light dark"]:checked) { color-scheme: light dark; } /* 不用 dark mode */ &:has(input[name="scheme"][value="light"]:checked) { color-scheme: light; } /* 使用 dark mode */ &:has(input[name="scheme"][value="dark"]:...

2024年Google的核心和spam更新

Google一直致力於減少無益和非原創內容,近期更是如此。 根據Google官方的評估,結合此次更新和先前的努力,搜尋結果中的低品質、非原創內容將減少40%。若再加上核心更新可能會有大量的排名波動:Google宣稱,由於這次更新相當複雜,相較於一般核心更新,排名的波動更大,因為不同系統會全面更新並相輔相成。 大規模內容濫用 Goole 試圖禁止那些使用自動化工具產生的內容來操作搜尋排名,無論是 AI 還是真人都抓。 例如,提供的內容假裝有答案,但其實對使用者沒有用。 網站聲譽濫用 即受信任的網站託管低品質的第三方內容,以利用託管網站的良好聲譽。 除此之外,Google 也稍微降低了「連結」的重要性。 不再強調連接「重要」 Google的SEO指南的內容有稍做修改: 舊版本:Google uses links as an important factor in determining the relevancy of web pages. 新版本:Google uses links as a factor in determining the relevancy of web pages. 為連結操作所建立的內容 強調內容如果是為了操作連結和其它排名訊號,是沒有用的。 我們姑且猜測這句話的意思是PBN(一個專門為連結到另一個網站並提高其自然搜尋可見性而創建的網站。這個想法是「饋送」網站將連結資產傳遞回主網站,這將提高其權威性,從而提高其排名能力)。 與傳出連結相關的新訊號 任何意圖操縱 Google 搜尋結果排名的連結都可能被視為垃圾連結。這包含任何操縱指向您網站的連結或從您網站發出的連結。 結論 Google除了注意到AI工具的濫用之外,也對於連結好壞的判定更嚴格,甚至不惜降低重要性。 除了劣質的反向連結之外,刻意操作的反向連結和濫用的內部連結也會被Google抓出來重新審視。至於方法和判斷基準,還是那句老話:「對使用者有用、可解決使用者問題」。而反向連結也是很理想的看法:內容很優質,自然會有人分享你的網頁。 以上內容,我想我們可以濃縮成「使用者意圖」與「不要濫用排名訊號」。在AI技術越來越發達的現在,真正能提供使用者想要的訊息或解方的網頁內容,才是最重要的。 相關連結 Google處理搜尋中的垃圾內容、低...

破解Content Decay SEO的迷思

圖片
你維護的網站的網頁數是否有上千頁或上萬頁?如果答案是YES的話,一定會存在History SEO這個問題,因此會有人提出許多意見。 什麼是History SEO? History SEO並不是一個官方正式的名詞,你可以想成網站長久維護下來產生的重覆內容、錯誤資訊、已經沒有在經營的產品……等等所產生的SEO負面問題。 另外,爬蟲的效能也有限,這也是為什麼網頁速度很重要的原因,速度越慢,爬蟲每天在你的網域爬到的頁面數量就越少。因此,也有人會有網站瘦身的想法。 為何要重視這個問題?根據 Google的常見問題 之中,有一段話寫得很明確: 移除不實用的內容,是否能提升我其他內容的排名? 我們的系統主要是在網頁層級運作,以便盡可能顯示最實用的內容,即使該內容所在網站同樣代管不實用的內容也不例外。話雖如此,要是網站中有特別多不實用的內容,可能會讓網站的其他內容在 Google 搜尋中的成效降低,但影響程度不一。移除不實用的內容,可能有助於提升其他網頁的成效。 常見的例子就是官方新聞稿或是blog文章,這些網頁可能代表著整個企業的歷史軌跡,刪除是不被高層主管允許的,所以不得不留下來。因此產生一些改善做法: 1. 更新內容 我認為這是最有效的方法,如果主管同意的話。 2. 網頁合併 相似內容且意圖相同的網頁可以考慮合併,但此種方法的困難點除了轉址之外就是主管同意的可能性很低,畢竟合併也代表有網頁會被刪除。 3. canonical 將相似或相同意圖的網頁用canonical指向同一個網頁,可以解決許多問題,但這樣做其實不完全正確,如同下面 John Mueller 所說的一樣,不如直接重定向。 但相對的,非常耗費時間,你必須決定哪些網頁需要canonical到別的頁面,而那個目標頁面又是哪一頁。而且,有一些人認為(未必正確),太多canonical指向的那個目標頁面,會讓爬蟲覺得好像沒有那麼重要,或是刻意操作。 4. noindex 不讓這些網頁出現在搜尋結果中。 5. unavailable_after 設定日期,讓爬蟲知道這個頁面在設定的日期之後就已經不重要了,這個設定也不會在日期之後出現在搜尋結果中。使用方法可以參考Google的 說明文件 。 6. robots.txt 有些人認為(未必正確),爬蟲的效能有限,所以會想在...

主題群集(Topic Cluster)將會因SGE(AI Overview)越來越重要

圖片
什麼是主題群集?有什麼好處? 主題群集(Topic Cluster)是為了讓網站關鍵字優化和結構更完整的SEO策略,又稱為內容叢集或pillar-and-cluster,通常會選取一個主要關鍵字編寫網站的核心主題,內容提到許多次要關鍵字,而這些次要關鍵字也編寫與其相關的內容主題網頁(支柱內容,Pillar Content),並和主要關鍵字的頁面建立內部連結。就像在建造房子一樣,梁柱越多越穩固,也間接提升了網站的可信認度與權威度。 主題群集的做法行之有年,在2017年就已經由HubSpot Research率先提出。主題群集能避免將大量主題塞在同一頁中,分散和歸類各種主題形成支柱內容,優化網站內容架構,讓使用者閱讀起來方便一點。 再簡單一點來說,核心主題、相關的補充內容(支柱內容)與讓它們互相連結起來的超連結,這三樣東西就是主題群集的一切。 為什麼主題群集越來越重要 因為SGE(2024年中改稱為AI Overview)的興起。其實不止如此,Bing Chat(Copilot)和 Gemini 的興起也會影響。 SGE(Search Generative Experience)是Google的「生成式搜尋體驗」,它能讓使用者能簡單又快速地了解某個人事物,並提供相關連結,讓使用者能因其需求選擇要不要點擊進去更深入地探索問題。除此之外,SGE因其對話式的架構,讓使用者可以繼續詢問相關問題。 這是不是和主題群集很像?不論是相關連結或是繼續詢問,都跟支柱內容有異曲同工之妙。 結論 主題群集的SEO做法行之有年,能對網站SEO優化是大家所公認的,內容寫的好,將會為網站在該領域建立領導地位與權威性的形象,無論如何做了都不會吃虧,還有機會提高獲得SGE青睞的機率。另外,也不要輕忽零搜尋量關鍵字的重要性。 「適度地」延伸網站的支柱內容,並在這些頁面深入探討這些次要主題,也許是情境,也許是知識,讓自己的網站架構就像是座堡壘一樣。

Google reCAPTCHA server端PHP的寫法(v2、v3)

v3版本 $msg = array(); $secret = 'your_secret_key'; $gRecaptchaResponse = isset($_POST['g-recaptcha-response']) ? $_POST['g-recaptcha-response'] : null; $ip = $_SERVER['REMOTE_ADDR']; $domainName = $_SERVER['HTTP_HOST']; include_once ("recaptcha/src/autoload.php"); $recaptcha = new \ReCaptcha\ReCaptcha($secret); $resp = $recaptcha->setExpectedHostname($domainName) ->setExpectedAction('homepage') ->setScoreThreshold(0.5) ->verify($gRecaptchaResponse, $ip); if ($resp->isSuccess()) { // $msg['ending']=$resp->toArray(); } else { $errors = $resp->getErrorCodes(); $msg['ending']='recaptchaFail'; $msg['recaptcha']=$errors; echo json_encode($msg); exit(); } 其中,autoload.php是 官方在github 給的檔案: /* An autoloader for ReCaptcha\Foo classes. This should be required() * by the user before attempting to in...

用PHP搭配Cloudflare Turnstile CAPTCHA

網路上有許多機器人驗證的替代方案,這裡介紹與 Google reCAPTCHA 寫法幾乎一樣的 Turnstile 給大家嘗試看看。 下面的寫法給各位參考: 後端PHP傳送與接收資料 與 Google 一樣,將query「response」與「secret」丟過去就可以了(範例多了「remoteip」,這個不一定要有)。 // captcha.php $captcha = $_POST['cf-turnstile-response']; $secretKey = 'your_secret_key'; $ip = $_SERVER['REMOTE_ADDR']; $url_path = 'https://challenges.cloudflare.com/turnstile/v0/siteverify'; $data = array('secret' => $secretKey, 'response' => $captcha, 'remoteip' => $ip); $opts = array( 'http'=> array( 'method'=> 'POST', 'content'=> http_build_query($data) ) ); $query = stream_context_create($opts); $result = file_get_contents($url_path, false, $query); echo json_encode($result); // 如果你想在後端直接判斷有沒有成功 $array = json_decode($result, true); $success = $array['success']; if($success){ // 驗證成功 }else{ // 驗證失敗 } 後端PHP這樣寫沒有問題,但資料回傳到前端JavaScript問題就出現了。 前端JavaScript接收Object $.ajax({ type: ...

違反Google AdSense廣告政策,網頁會在SERP消失

圖片
若你的網站違反 Google AdSense 的廣告政策,你的 Google AdSense 介面會出現警告,也會收到 email,並要求你必需在期限內「申請審查」。 也因為如此,我的某些網頁在 SERP 中消失了(它並不會告訢你哪個網頁有問題,只會說網域),這讓我必需立即著手改善,但我該怎麼做? 判斷違規的原因 首先,我去 政策中心 找尋可能的原因,但還是無法判斷。之後,重新讀一次它在信中提到的可能原因:「試圖讓使用者誤點擊」,所以我把側邊工具欄的廣告全部都刪除了。 結果 在申請審查時,表單會叫你填「做了什麼改善」、「範例網頁」等等的欄位,我當然是填了「刪除工具列的廣告」。而在兩天之後,審查通過了,原本在 SERP 消失的網頁也神奇地復活了。 AdSense審查通過的通知信 疑問 讓我驚訝的是,我以為這樣子的違規逞罰頂多是不讓網站出現廣告,或是網站排名下降而已;但我錯了,是網頁直接消失,而且是消失一週之後才通知我違反廣告政策……。 其實,我在網站工具列放廣告已經放好幾年了,現在才說我違規,而且刪掉那裡的廣告還真的讓我過關了……大開眼界。 你可能會說,這說不定是 Google 核心更新在搞事。但官方公告開始更新的日期是在我審查通過後的三天,所以不太可能。

PHP簡單的字串資料加密與解密方法

圖片
PHP simple encryption and decryption functions php 字串加密與解密簡單的寫法,這裡使用的是 openssl_encrypt 這個語法: // 加密函数 function encryptFunction($data, $key) { $encryptedData = openssl_encrypt($data, 'AES-256-CBC', $key, 0, substr($key, 0, 16)); return $encryptedData; } // 解密函数 function decryptFunction($encryptedData, $key) { $data = openssl_decrypt($encryptedData, 'AES-256-CBC', $key, 0, substr($key, 0, 16)); return $data; } // 因為上面寫了 openssl_encrypt() 至少要16 byte,所以這裡的key至少要16個字 $encryptionKey = 'abcdefghijk123457'; 因為寫了 substr($key, 0, 16) 抓取 $key 的 1~16 位置的文字,所以 $key 沒有16個字的話會報錯,你可以視自己的需求改變長短。 實際使用範例 // for example $tempVariable = 'oh nyo!'; $tempVariableEncrypt = encryptFunction($tempVariable, $encryptionKey); // mmdpiTHs1NnuNZrk7zxnWA== $decryptBack = decryptFunction($tempVariableEncrypt, $encryptionKey); // oh nyo! 這個方法可以簡單運用在存入資料庫,與取出資料庫的資訊給具有權限的人。