![]() |
Instant Indexing For Blogger Website by Computer Trainer Place |
Google Indexing API কি?
Google Indexing API এমন একটি Google-এর সরঞ্জাম যা ওয়েবমাস্টার বা ডিজিটাল পাবলিশারদের দ্রুতভাবে Google-কে জানিয়ে দিতে পারে যে তাদের ওয়েবপেজ নতুন হয়েছে (“URL_UPDATED”) অথবা মুছে গেছে (“URL_DELETED”)। এটি একটি HTTP API (RESTful), যা নির্দিষ্ট ধরণের পৃষ্ঠা নতুন হলে বা পরিবর্তন হলে Google-এর ক্রলারকে দ্রুত “crawl” করার অনুরোধ করে।
কে-কিসের জন্য তৈরি হয়েছে (Supported content types)
গুগল স্পষ্টভাবে বলেছে যে Indexing API শুধুমাত্র নির্দিষ্ট দুই ধরনের কন্টেন্টের জন্য ডিজাইন করা হয়েছে:
-
JobPosting — কর্মসংস্থান সংক্রান্ত বিজ্ঞাপন বা নিয়োগ বিজ্ঞপ্তি
-
LiveStream / BroadcastEvent — যা ভিডিও সম্প্রচারের (livestream) ঘটনা বা বার্তা (broadcast event) হিসাবে চিহ্নিত করা হয়, এবং “VideoObject”-এর মধ্যে “BroadcastEvent” থাকতে হবে।
অতীতে অনেক ব্লগাররা, ব্লগ পোস্ট বা সাধারণ আর্টিকেল ইত্যাদির জন্য এই API ব্যবহার করার চেষ্টা করেছেন। কিন্তু গুগল এখন সেই ব্যবহার সীমিত করছে এবং API-এর নীতি অনুযায়ী এসব কন্টেন্ট জন্য Indexing API ব্যবহার করা অনুমোদিত নয়।
Blogger ওয়েবসাইটে Indexing API ব্যবহার: বাস্তবতা ও সম্ভাবনা
✅ সম্ভাবনা:
-
যদি আপনার ব্লগে “Live ভিডিও সম্প্রচার” বা “BroadcastEvent” থাকে, অথবা “JobPosting” ধরনের কিছু পোস্ট থাকে, তাহলে API কার্যকর হতে পারে।
-
যদি আপনার ব্লগ কনটেন্ট সময়সাপেক্ষ এবং দ্রুত পরিবর্তনশীল হয় (যেমন নিয়োগ বিজ্ঞপ্তি, সংবাদ, ইভেন্ট), তাহলে দ্রুত ইনডেক্স করার দরকার হতে পারে, এবং Indexing API এর মাধ্যমে সেটা কিছুটা দ্রুত ঘটতে পারে — তবে কোন গ্যারান্টি নেই।
❌ সীমাবদ্ধতা:
-
ব্লগ পোস্ট / সাধারণ আর্টিকেল — যেটা Blogger ব্যবহারকারীদের সবচেয়ে সাধারণ ধরণের কনটেন্ট — তা এখন অনেক ক্ষেত্রে API দ্বারা ইনডেক্স করা হচ্ছে না বা অনুমোদিত নয়। গুগলের নীতিতে এই “বের হওয়া পরিবর্তন” ঘটেছে।
-
API ব্যবহার করলে ইনডেক্স গ্যারান্টি নেই। শুধুমাত্র “request” যায় গুগলের ক্রলারের কাছে, কিন্তু গুগল সিদ্ধান্ত নেবে কবে ও কি অবস্থায় পেজ ক্রল ও ইনডেক্স করা হবে।
-
কোয়টা / সীমা রয়েছে — প্রতিদিন কতগুলো URL ইনডেক্স করার রিকোয়েস্ট পাঠানো যাবে তা একটি সার্ভিস অ্যাকাউন্ট ভিত্তিক সীমা আছে।
-
স্প্যাম ও ভুল ব্যবহার — গুগল সতর্ক যে যারা API বহু লিংক পাঠিয়ে অথবা অপ্রাসঙ্গিক, নিম্নমানের কন্টেন্ট ইনডেক্স করার চেষ্টা করেন তাদের ক্ষেত্রে API এক্সেস বন্ধ হতে পারে।
ধাপে ধাপে: Blogger + Google Indexing API ব্যবহার করার প্রক্রিয়া
নিচে বিস্তারিত স্টেপ দেওয়া হলো যেটি যদি আপনি উপযুক্ত কনটেন্ট (JobPosting বা BroadcastEvent) থাকে, তাহলে অনুসরণ করতে পারেন।
ধাপ ১: প্রয়োজনীয় প্রস্তুতি
-
Google Cloud Console এ একটি প্রকল্প তৈরি করা
একটি নতুন project খুলুন এবং নাম দিন যা থেকে আপনি কাজ শুরু করবেন। -
Indexing API সক্ষম করা (Enable করা)
Google Cloud Console-এ গিয়ে “APIs & Services → Library” থেকে Indexing API সার্চ করে Enable করুন। -
Service account তৈরি করা ও JSON কী (service account key) ডাউনলোড করা
-
“IAM & Admin → Service Accounts” এ যান
-
Create Service Account দিন
-
একটি রোল (Role) নির্বাচন করুন (সাধারণভাবে Owner অথবা Editor, তবে নিরাপত্তা বিবেচনায় কম প্রিভিলেজ বেছে নেওয়া ভালো)
-
Key তৈরি করুন, JSON ফরম্যাটে ডাউনলোড করুন।
-
-
গুগল সার্চ কনসোলে ওয়েবসাইট মালিকানার প্রমাণ (Ownership) নিশ্চিত করা
-
আপনার ব্লগার সাইট Search Console-এ প্রপার্টি হিসেবে যোগ করতে হবে
-
সার্ভিস অ্যাকাউন্টের ইমেইলকে “Owner” হিসেবে যুক্ত করতে হবে যাতে API অফিশিয়ালি কাজ করতে পারে
-
ধাপ ২: যথাযথ কনটেন্ট স্ট্রাকচার নিশ্চিত করা
যদি আপনি “JobPosting” বা “BroadcastEvent” ধরনের কনটেন্ট ব্যবহার করেন, তাহলে:
-
পেজে structured data থাকতে হবে — যা JSON-LD অথবা অন্য একটি ফরম্যাটে “JobPosting” বা “BroadcastEvent” হিসেবে মেটাডেটা উল্লেখ করে।
-
সাইটটি অবশ্যই Google-এর Webmaster নীতি, SEO ভালো অনুশীলন মেনে চলে — স্প্যাম, নকল বা কম মানের কনটেন্ট থাকা উচিত নয়।
ধাপ ৩: কোড/স্ক্রিপ্ট ব্যবহার করে URL পাঠানো
নিচে একটি সাধারণ উদাহরণ দেওয়া হলো Python দিয়ে কীভাবে URL পাঠানো যায়:
from google.oauth2 import service_account
from googleapiclient.discovery import build
SCOPES = ["https://www.googleapis.com/auth/indexing"]
SERVICE_ACCOUNT_FILE = "path/to/your-service-account.json"
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES)
service = build("indexing", "v3", credentials=credentials)
body = {
"url": "https://your-blog-domain.com/path-to-jobposting-or-event-page",
"type": "URL_UPDATED" # অথবা "URL_DELETED", যদি পাতা মুছে দেওয়া হয়
}
response = service.urlNotifications().publish(body=body).execute()
print(response)
-
URL_UPDATED
— নতুন পাতা বা পাতা পরিবর্তন হলে -
URL_DELETED
— পাতা সরিয়ে দেওয়া হলে বা 404/410 ধরণের রেসপন্স দিলে
ধাপ ৪: রিকোয়েস্ট স্ট্যাটাস যাচাই করা
গুগল আপনাকে এভাবে জানিয়ে দিবে কখন আপনার রিকোয়েস্ট গৃহীত হয়েছে ও সর্বশেষ কখন আপডেট বা রিমুভ নোটিফিকেশন পাঠানো হয়েছিল:
-
HTTP GET রিকোয়েস্ট:
https://indexing.googleapis.com/v3/urlNotifications/metadata?url={ENCODED_URL}
এখানেENCODED_URL
হলো URL এনকোড করে দেওয়া।
ধাপ ৫: বিকল্প ও পরিমিত ব্যবহার
-
সব URL একসাথে পাঠাবেন না। উচ্চ মানের, প্রধান পেজ বা Job/Event পেজগুলো অগ্রাধিকার দিন।
-
ব্যাচ রিকোয়েস্ট ব্যবহার করতে পারেন — তবে প্রতিটি ইউআরএল আলাদাভাবে কোয়টার হিসেবে গন্য।
-
SEO মেট্রিকস, কনটেন্ট মান, ইন্টারনাল লিংক ইত্যাদি ঠিক রাখতে হবে যেন গুগল ভালোভাবে ক্রল ও র্যাংক করতে পারে।
সীমাবদ্ধতা ও সতর্কতা
নিচের বিষয়গুলো মাথায় রাখতে হবে:
-
কনটেন্ট টাইপের সীমাবদ্ধতা
যেভাবে উল্লেখ হয়েছে, API মূলত শুধু JobPosting বা BroadcastEvent ধরণের জন্য অনুমোদিত। ব্লগ পোস্ট বা সাধারণ আর্টিকেলগুলোর ক্ষেত্রে বর্তমানে গুগল API-এর মাধ্যমে ইনডেক্সিং নিশ্চিত করছে না। -
স্প্যাম ও কোয়টা লঙ্ঘন
অতিরিক্ত রিকোয়েস্ট পাঠানো, নিম্নমানের লেখা, নকল লেখা, বা একাধিক সার্ভিস অ্যাকাউন্ট ব্যবহার করে কোয়টা বাইপাস করার চেষ্টা করলে গুগল কঠোর হয়ে যাবে। API অ্যাক্সেস বন্ধ হতে পারে। -
ইনডেক্সিং গ্যারান্টি নেই
API ব্যবহার করলেও পাতা ইনডেক্স হবে কি না তাও নির্ভর করে গুগলের ক্রলার, পেজের গুণগত মান, সাইটের পপুলারিটি, লিংক, শক্তিশালী SEO স্ট্রাকচার ইত্যাদির উপর। অনেক সময় API রেসপন্স পাওয়া গেলেও পেজ ইনডেক্স হতে সময় লাগে, বা হয়তো ইনডেক্স করা হয় না। -
ব্লগার প্ল্যাটফর্ম ও কাস্টম ডোমেইন
Blogger ব্যবহার করলে কিছু অতিরিক্ত দিক খেয়াল রাখতে হবে:-
আপনি যদি কাস্টম ডোমেইন ব্যবহার করেন, তাহলে SSL নিশ্চিত কিনা, রিডিরেকশন ঠিক আছে কি না, পাতা দ্রুত লোড হয় কি না, রোবটস.txt এবং Meta tags সঠিকভাবে সেট করা আছে কি না — এসব ইন্ডেক্সিং প্রভাবিত করতে পারে।
-
Blogger-এর ভিতর কিছু লোক “?m=1” যুক্ত URL ব্যবহার করেছেন দ্রুত মোবাইল ভার্সন দেখানোর জন্য — এতে কনটেন্ট কখনো কখনো আলাদাভাবে ইনডেক্স হয়। কিন্তু এই পদ্ধতির বিশ্বস্ততা সবসময় নেই।
-
নতুন আপডেট ও গুগলের নীতি পরিবর্তন
-
সেপ্টেম্বর ২০২৪ থেকে গুগল Indexing API নীতি আরও কঠোর করেছে — API রিকোয়েস্টের গুণগত মান ও কনটেন্টের প্রাসঙ্গিকতা যাচাই করছে স্প্যাম ডিটেকশন প্রবলেম কমাতে।
-
নিয়ম হলো যে, গুগল শুধুমাত্র অনুমোদিত ধরণের ইউআরএল ও কনটেন্টের উপর API কাজ করবে — সাধারণ ব্লগ পোস্টগুলো API দ্বারা ইনডেক্স করা হবে না বা কখনো কখনো নামা পড়তে পারে।
প্রস্তাবিত ভালো অনুশীলন (Best Practices)
যদি আপনি Blogger ব্লগার হয়ে থাকেন এবং সম্ভব হলে Indexing API ব্যবহার করতে চান, তাহলে নিচের ভালো অনুশীলনগুলো অনুসরণ করুন:
-
প্রাসঙ্গিক ও মানসম্মত কনটেন্ট তৈরি করুন
লেখার গুণগত মান ভালো হবে; duplication ও নীরস কনটেন্ট এড়িয়ে চলুন। -
Structured Data ব্যবহার করুন
যদি JobPosting বা BroadcastEvent ধরণের কিছু থাক, সেক্ষেত্রে JSON-LD মেটাডেটা যুক্ত করুন। -
সাইটম্যাপ (Sitemap) ও Robots.txt ঠিকমতো রাখুন
গুগলের জন্য আপনার ব্লগের সাইটম্যাপ সাবমিট রাখুন Search Console-এ; নিশ্চিত করুন robots.txt পাতা ব্লক করছে না গুরুত্বপূর্ণ URL। -
ভয়েস / কাস্টম সার্চ / Social Share
নতুন লেখার ক্ষেত্রে সোশ্যাল মিডিয়ায় শেয়ার, ব্যাকলিংক পাওয়া গেলে ইনডেক্স হওয়ার সম্ভাবনা বাড়ে। -
URL Inspection Tool ব্যবহার করুন Search Console-এ
নতুন URL গুগলে কিভাবে দেখা যেতে পারে তা যাচাই করার জন্য URL inspection টুল ব্যবহার করুন; যদি সমস্যা দেখায় তাহলে সংশোধন করুন। -
পরিমিত ও দায়িত্বশীল API রিকোয়েস্ট পাঠান
কোনো স্প্যাম মনে হলে, কোয়টা লঙ্ঘন হবে; বেশি URL ব্যাচে পাঠালে মনোযোগ দিন; সার্ভিস অ্যাকাউন্ট সুরক্ষিতভাবে রাখুন।
সিদ্ধান্ত Instant Indexing For Blogger Website by Computer Trainer Place
-
Google Indexing API খুব শক্তিশালী একটি টুল, কিন্তু সব কাজেই উপযোগী নয়। বিশেষত Blogger-এর সাধারণ ব্লগ পোস্টগুলোর জন্য এর ব্যবহার এখন গুগলের নীতিতে সীমাবদ্ধ।
-
যদি আপনি JobPosting বা Live Broadcast/Event ধরণের বিষয় নিয়ে কাজ করেন, তবে API ব্যবহার খুব ভালো ফল দিতে পারে। যদি না হয়, তাহলে প্রচলিত SEO প্র্যাকটিস, Search Console ব্যবহার ও ভালো কনটেন্ট তৈরি করলেই ধাপে ধাপে ইনডেক্স বাড়ানো সম্ভব।
-
নতুন নীতি অনুসারে, দ্রুত ইনডেক্সিং চাওয়ার সময় ট্রাস্টযোগ্য আর্টিকেল, ভাল অভ্যন্তরীণ লিঙ্কিং ও পরিষ্কার ওয়েবসাইট স্ট্রাকচার সবচেয়ে বেশি সহায়ক।
Google Indexing API কোড ডাউন লোড করুন
{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "API Indexing For Blogger By Tech Bhavesh", "provenance": [], "collapsed_sections": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "source": [ "## **Instant Indexing For Blogger Website's Using Google API**" ], "metadata": { "id": "0uGYx5rzEjaJ" } }, { "cell_type": "code", "source": [ "#@title **Connect Your Google Drive**\n", "#@markdown **To use this method, you have to connect your Google Drive everytime you Refresh/Disconnect/Reset this notebook in order to use the files saved in your drive but no need to re-upload the file again**\n", "\n", "#@markdown **Provide Yes > Execute the cell**\n", "Connect_Google_Drive = \"Yes\" #@param [\"Yes\", \"No\"]\n", "if Connect_Google_Drive == \"Yes\":\n", " from google.colab import drive\n", " drive.mount('/content/drive')\n", " print(\"Successfully Connected!\")\n", "else:\n", " print(\"Not Connected!\")" ], "metadata": { "cellView": "form", "id": "QqBWFgLlFQpF" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "#@title **Provide Complete Path Of The API Key Here**\n", "API_Path = \"/content/drive/MyDrive/API_Key.json\" #@param {type:\"string\"}\n", "\n", "from oauth2client.service_account import ServiceAccountCredentials\n", "import httplib2\n", "\n", "SCOPES = [\"https://www.googleapis.com/auth/indexing\"]\n", "ENDPOINT = \"https://indexing.googleapis.com/v3/urlNotifications:publish\"\n", "print('*'*50);print(\"Scopes & Endpoint Configured...\");print('*'*50);print(\"Adding Key...\");print('*'*50);\n", "# service_account_file.json is the private key that you created for your service account.\n", "JSON_KEY_FILE = API_Path\n", "print(\"Key Added Successfully!\");print('*'*50);\n", "credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)\n", "http = credentials.authorize(httplib2.Http())\n", "print(\"Credentials Successfully Authorized!\");print('*'*50);" ], "metadata": { "cellView": "form", "id": "HgmMnKOBQcdR" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "#@title **Provide Site URL & Update Request Type**\n", "#@markdown Site URL will the exact URL you want to update or delete from the Google Search Index. **Also, please make a note that you have to provide URL only for the ownership verfied website. For any other URLs, it will not work.**\n", "siteURL = \"\" #@param {type:\"string\"}\n", "requestType = \"URL_UPDATED\" #@param [\"URL_UPDATED\", \"URL_DELETED\"]\n", "content = str({'url':siteURL,'type':requestType})\n", "print(\"RESULT:\");print('*'*50);print(\"URL and Update Request Type Configured!\");print('*'*50);\n", "\n", "response, content = http.request(ENDPOINT, method=\"POST\", body=content)\n", "output = response['status']\n", "\n", "if output == '200':\n", " print(\"Successfully Done!\");print('*'*50);\n", "\n", "else:\n", " print(\"Error Code: {}\".format(output));print('*'*50);\n", " print(\"Visit Here For More: https://developers.google.com/search/apis/indexing-api/v3/core-errors#api-errors\");\n", " print('*'*50);" ], "metadata": { "cellView": "form", "id": "VuJ-Pt1eS8mT" }, "execution_count": null, "outputs": [] } ] }
No comments:
Post a Comment